Commit ccb4217d authored by Salvador Guerrero's avatar Salvador Guerrero Committed by Commit Bot

Revert "metrics: Remove CachedMetrics"

This reverts commit 1231840e.

Reason for revert: Causing build failures in android-internal-chromium-tot
https://ci.chromium.org/p/chrome/builders/ci/android-internal-chromium-tot

Original change's description:
> metrics: Remove CachedMetrics
> 
> Bug: 1048429
> Change-Id: Ib5b5ee1d07492eb30b754320f6527acd5cda60f4
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2079255
> Commit-Queue: bttk <bttk@chromium.org>
> Reviewed-by: Filip Gorski <fgorski@chromium.org>
> Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
> Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#752614}

TBR=yfriedman@chromium.org,fgorski@chromium.org,pavely@chromium.org,bttk@chromium.org

Change-Id: I3af9a0200e42e332c647ccb3d73f2cd756b0dc04
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1048429
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2117153Reviewed-by: default avatarSalvador Guerrero <salg@google.com>
Commit-Queue: Salvador Guerrero <salg@google.com>
Cr-Commit-Position: refs/heads/master@{#752641}
parent 023dd772
...@@ -3352,6 +3352,7 @@ if (is_android) { ...@@ -3352,6 +3352,7 @@ if (is_android) {
"android/java/src/org/chromium/base/memory/MemoryPressureCallback.java", "android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
"android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java", "android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
"android/java/src/org/chromium/base/memory/MemoryPressureUma.java", "android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
"android/java/src/org/chromium/base/metrics/CachedMetrics.java",
"android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java", "android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
"android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java", "android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
"android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java", "android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
......
...@@ -30,11 +30,13 @@ import org.chromium.base.NativeLibraryLoadedStatus.NativeLibraryLoadedStatusProv ...@@ -30,11 +30,13 @@ import org.chromium.base.NativeLibraryLoadedStatus.NativeLibraryLoadedStatusProv
import org.chromium.base.StreamUtil; import org.chromium.base.StreamUtil;
import org.chromium.base.StrictModeContext; import org.chromium.base.StrictModeContext;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.MainDex; import org.chromium.base.annotations.MainDex;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.annotations.RemovableInRelease; import org.chromium.base.annotations.RemovableInRelease;
import org.chromium.base.compat.ApiHelperForM; import org.chromium.base.compat.ApiHelperForM;
import org.chromium.base.metrics.CachedMetrics;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.UmaRecorderHolder; import org.chromium.base.metrics.UmaRecorderHolder;
...@@ -735,6 +737,11 @@ public class LibraryLoader { ...@@ -735,6 +737,11 @@ public class LibraryLoader {
} }
} }
@CalledByNative
public static void onUmaRecordingReadyInRenderer() {
CachedMetrics.commitCachedMetrics();
}
// Android system sometimes fails to extract libraries from APK (https://crbug.com/806998). // Android system sometimes fails to extract libraries from APK (https://crbug.com/806998).
// This function manually extract libraries as a fallback. // This function manually extract libraries as a fallback.
@SuppressLint({"SetWorldReadable"}) @SuppressLint({"SetWorldReadable"})
......
...@@ -10,6 +10,7 @@ import org.robolectric.annotation.Implementation; ...@@ -10,6 +10,7 @@ import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements; import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter; import org.robolectric.annotation.Resetter;
import org.chromium.base.metrics.CachedMetrics;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import java.util.HashMap; import java.util.HashMap;
...@@ -69,12 +70,14 @@ public class ShadowRecordHistogram { ...@@ -69,12 +70,14 @@ public class ShadowRecordHistogram {
@Implementation @Implementation
public static int getHistogramValueCountForTesting(String name, int sample) { public static int getHistogramValueCountForTesting(String name, int sample) {
CachedMetrics.commitCachedMetrics();
Integer i = sSamples.get(Pair.create(name, sample)); Integer i = sSamples.get(Pair.create(name, sample));
return (i != null) ? i : 0; return (i != null) ? i : 0;
} }
@Implementation @Implementation
public static int getHistogramTotalCountForTesting(String name) { public static int getHistogramTotalCountForTesting(String name) {
CachedMetrics.commitCachedMetrics();
Integer i = sTotals.get(name); Integer i = sTotals.get(name);
return (i != null) ? i : 0; return (i != null) ? i : 0;
} }
......
...@@ -70,6 +70,9 @@ void RecordLibraryLoaderRendererHistograms() { ...@@ -70,6 +70,9 @@ void RecordLibraryLoaderRendererHistograms() {
UMA_HISTOGRAM_TIMES( UMA_HISTOGRAM_TIMES(
"ChromiumAndroidLinker.RendererLoadTime", "ChromiumAndroidLinker.RendererLoadTime",
base::TimeDelta::FromMilliseconds(g_renderer_library_load_time_ms)); base::TimeDelta::FromMilliseconds(g_renderer_library_load_time_ms));
Java_LibraryLoader_onUmaRecordingReadyInRenderer(
base::android::AttachCurrentThread());
} }
void SetLibraryLoadedHook(LibraryLoadedHook* func) { void SetLibraryLoadedHook(LibraryLoadedHook* func) {
......
...@@ -21,7 +21,7 @@ import androidx.annotation.Nullable; ...@@ -21,7 +21,7 @@ import androidx.annotation.Nullable;
import androidx.browser.customtabs.CustomTabsIntent; import androidx.browser.customtabs.CustomTabsIntent;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.CachedMetrics;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider;
...@@ -45,6 +45,10 @@ import javax.inject.Inject; ...@@ -45,6 +45,10 @@ import javax.inject.Inject;
@ActivityScope @ActivityScope
public class CustomTabBottomBarDelegate implements FullscreenListener { public class CustomTabBottomBarDelegate implements FullscreenListener {
private static final String TAG = "CustomTab"; private static final String TAG = "CustomTab";
private static final CachedMetrics.ActionEvent REMOTE_VIEWS_SHOWN =
new CachedMetrics.ActionEvent("CustomTabsRemoteViewsShown");
private static final CachedMetrics.ActionEvent REMOTE_VIEWS_UPDATED =
new CachedMetrics.ActionEvent("CustomTabsRemoteViewsUpdated");
private static final int SLIDE_ANIMATION_DURATION_MS = 400; private static final int SLIDE_ANIMATION_DURATION_MS = 400;
private final ChromeActivity<?> mActivity; private final ChromeActivity<?> mActivity;
...@@ -117,7 +121,7 @@ public class CustomTabBottomBarDelegate implements FullscreenListener { ...@@ -117,7 +121,7 @@ public class CustomTabBottomBarDelegate implements FullscreenListener {
RemoteViews remoteViews = mDataProvider.getBottomBarRemoteViews(); RemoteViews remoteViews = mDataProvider.getBottomBarRemoteViews();
if (remoteViews != null) { if (remoteViews != null) {
RecordUserAction.record("CustomTabsRemoteViewsShown"); REMOTE_VIEWS_SHOWN.record();
mClickableIDs = mDataProvider.getClickableViewIDs(); mClickableIDs = mDataProvider.getClickableViewIDs();
mClickPendingIntent = mDataProvider.getRemoteViewsPendingIntent(); mClickPendingIntent = mDataProvider.getRemoteViewsPendingIntent();
showRemoteViews(remoteViews); showRemoteViews(remoteViews);
...@@ -162,7 +166,7 @@ public class CustomTabBottomBarDelegate implements FullscreenListener { ...@@ -162,7 +166,7 @@ public class CustomTabBottomBarDelegate implements FullscreenListener {
*/ */
public boolean updateRemoteViews(RemoteViews remoteViews, int[] clickableIDs, public boolean updateRemoteViews(RemoteViews remoteViews, int[] clickableIDs,
PendingIntent pendingIntent) { PendingIntent pendingIntent) {
RecordUserAction.record("CustomTabsRemoteViewsUpdated"); REMOTE_VIEWS_UPDATED.record();
if (remoteViews == null) { if (remoteViews == null) {
if (mBottomBarView == null) return false; if (mBottomBarView == null) return false;
hideBottomBar(); hideBottomBar();
......
...@@ -10,7 +10,7 @@ import android.os.Bundle; ...@@ -10,7 +10,7 @@ import android.os.Bundle;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.CachedMetrics;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
...@@ -27,6 +27,15 @@ import java.util.function.Consumer; ...@@ -27,6 +27,15 @@ import java.util.function.Consumer;
*/ */
@TargetApi(29) @TargetApi(29)
public abstract class DirectActionCoordinator { public abstract class DirectActionCoordinator {
/**
* Tracks calls to {@link #onGetDirectActions}.
*
* <p>This corresponds to a user triggering the assist app while a Chrome activity is in the
* foreground.
*/
private static final CachedMetrics.ActionEvent LIST_ACTION_EVENT =
new CachedMetrics.ActionEvent("Android.DirectAction.List");
private final Set<DirectActionHandler> mHandlers = new LinkedHashSet<>(); private final Set<DirectActionHandler> mHandlers = new LinkedHashSet<>();
/** /**
...@@ -55,7 +64,7 @@ public abstract class DirectActionCoordinator { ...@@ -55,7 +64,7 @@ public abstract class DirectActionCoordinator {
} }
} }
reporter.report(); reporter.report();
RecordUserAction.record("Android.DirectAction.List"); LIST_ACTION_EVENT.record();
} }
/** Performs an action and reports the result to the callback. */ /** Performs an action and reports the result to the callback. */
......
...@@ -12,7 +12,7 @@ import android.content.DialogInterface; ...@@ -12,7 +12,7 @@ import android.content.DialogInterface;
import com.google.android.gms.common.GoogleApiAvailability; import com.google.android.gms.common.GoogleApiAvailability;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.CachedMetrics.ActionEvent;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
...@@ -40,6 +40,13 @@ import java.util.concurrent.atomic.AtomicBoolean; ...@@ -40,6 +40,13 @@ import java.util.concurrent.atomic.AtomicBoolean;
* subclassing this class. * subclassing this class.
*/ */
public abstract class UserRecoverableErrorHandler { public abstract class UserRecoverableErrorHandler {
private static final ActionEvent sModalDialogShownActionEvent =
new ActionEvent("Signin_Android_GmsUserRecoverableDialogShown");
private static final ActionEvent sModalDialogAcceptedActionEvent =
new ActionEvent("Signin_Android_GmsUserRecoverableDialogAccepted");
/** /**
* Handles the specified error code from Google Play Services. * Handles the specified error code from Google Play Services.
* This method must only be called on the UI thread. * This method must only be called on the UI thread.
...@@ -123,7 +130,7 @@ public abstract class UserRecoverableErrorHandler { ...@@ -123,7 +130,7 @@ public abstract class UserRecoverableErrorHandler {
public void onDismiss(DialogInterface dialogInterface) { public void onDismiss(DialogInterface dialogInterface) {
if (mCancelled) return; if (mCancelled) return;
// Dialog is being dismissed without being cancelled - user accepted dialog action. // Dialog is being dismissed without being cancelled - user accepted dialog action.
RecordUserAction.record("Signin_Android_GmsUserRecoverableDialogAccepted"); sModalDialogAcceptedActionEvent.record();
} }
public static void createAndAttachToDialog(Dialog dialog) { public static void createAndAttachToDialog(Dialog dialog) {
...@@ -193,7 +200,7 @@ public abstract class UserRecoverableErrorHandler { ...@@ -193,7 +200,7 @@ public abstract class UserRecoverableErrorHandler {
if (mDialog != null && !mDialog.isShowing()) { if (mDialog != null && !mDialog.isShowing()) {
mDialog.setCancelable(mCancelable); mDialog.setCancelable(mCancelable);
mDialog.show(); mDialog.show();
RecordUserAction.record("Signin_Android_GmsUserRecoverableDialogShown"); sModalDialogShownActionEvent.record();
} }
} }
......
...@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.metrics; ...@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.metrics;
import org.chromium.base.StrictModeContext; import org.chromium.base.StrictModeContext;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.metrics.CachedMetrics;
import org.chromium.chrome.browser.ShortcutSource; import org.chromium.chrome.browser.ShortcutSource;
import org.chromium.chrome.browser.webapps.WebApkInfo; import org.chromium.chrome.browser.webapps.WebApkInfo;
import org.chromium.chrome.browser.webapps.WebApkUkmRecorder; import org.chromium.chrome.browser.webapps.WebApkUkmRecorder;
...@@ -93,6 +94,13 @@ public class LaunchMetrics { ...@@ -93,6 +94,13 @@ public class LaunchMetrics {
} }
} }
sHomeScreenLaunches.clear(); sHomeScreenLaunches.clear();
String cachedMetricsGroup =
CachedMetrics.histogramsBypassCache() ? "HistogramsBypassCache" : "Control";
UmaSessionStats.registerSyntheticFieldTrial("AndroidCachedMetrics", cachedMetricsGroup);
// Record generic cached events.
CachedMetrics.commitCachedMetrics();
} }
/** /**
......
...@@ -40,7 +40,7 @@ import org.chromium.base.ApiCompatibilityUtils; ...@@ -40,7 +40,7 @@ import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.SysUtils; import org.chromium.base.SysUtils;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.CachedMetrics.ActionEvent;
import org.chromium.chrome.browser.WindowDelegate; import org.chromium.chrome.browser.WindowDelegate;
import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.KeyboardVisibilityDelegate;
...@@ -55,6 +55,13 @@ public abstract class UrlBar extends AutocompleteEditText { ...@@ -55,6 +55,13 @@ public abstract class UrlBar extends AutocompleteEditText {
private static final boolean DEBUG = false; private static final boolean DEBUG = false;
private static final ActionEvent ACTION_LONG_PRESS_COPY =
new ActionEvent("Omnibox.LongPress.Copy");
private static final ActionEvent ACTION_LONG_PRESS_CUT =
new ActionEvent("Omnibox.LongPress.Cut");
private static final ActionEvent ACTION_LONG_PRESS_SHARE =
new ActionEvent("Omnibox.LongPress.Share");
// TextView becomes very slow on long strings, so we limit maximum length // TextView becomes very slow on long strings, so we limit maximum length
// of what is displayed to the user, see limitDisplayableLength(). // of what is displayed to the user, see limitDisplayableLength().
private static final int MAX_DISPLAYABLE_LENGTH = 4000; private static final int MAX_DISPLAYABLE_LENGTH = 4000;
...@@ -593,9 +600,9 @@ public abstract class UrlBar extends AutocompleteEditText { ...@@ -593,9 +600,9 @@ public abstract class UrlBar extends AutocompleteEditText {
if ((id == android.R.id.cut || id == android.R.id.copy) if ((id == android.R.id.cut || id == android.R.id.copy)
&& !mUrlBarDelegate.shouldCutCopyVerbatim()) { && !mUrlBarDelegate.shouldCutCopyVerbatim()) {
if (id == android.R.id.cut) { if (id == android.R.id.cut) {
RecordUserAction.record("Omnibox.LongPress.Cut"); ACTION_LONG_PRESS_CUT.record();
} else { } else {
RecordUserAction.record("Omnibox.LongPress.Copy"); ACTION_LONG_PRESS_COPY.record();
} }
String currentText = getText().toString(); String currentText = getText().toString();
String replacementCutCopyText = mTextContextMenuDelegate.getReplacementCutCopyText( String replacementCutCopyText = mTextContextMenuDelegate.getReplacementCutCopyText(
...@@ -623,7 +630,7 @@ public abstract class UrlBar extends AutocompleteEditText { ...@@ -623,7 +630,7 @@ public abstract class UrlBar extends AutocompleteEditText {
} }
if (id == android.R.id.shareText) { if (id == android.R.id.shareText) {
RecordUserAction.record("Omnibox.LongPress.Share"); ACTION_LONG_PRESS_SHARE.record();
} }
return super.onTextContextMenuItem(id); return super.onTextContextMenuItem(id);
......
...@@ -14,8 +14,8 @@ import android.view.ViewGroup; ...@@ -14,8 +14,8 @@ import android.view.ViewGroup;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import org.chromium.base.metrics.CachedMetrics.ActionEvent;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
...@@ -66,6 +66,15 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr ...@@ -66,6 +66,15 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr
int NUM_ENTRIES = 4; int NUM_ENTRIES = 4;
} }
private static final ActionEvent ACTION_EDIT_URL_SUGGESTION_TAP =
new ActionEvent("Omnibox.EditUrlSuggestion.Tap");
private static final ActionEvent ACTION_EDIT_URL_SUGGESTION_COPY =
new ActionEvent("Omnibox.EditUrlSuggestion.Copy");
private static final ActionEvent ACTION_EDIT_URL_SUGGESTION_EDIT =
new ActionEvent("Omnibox.EditUrlSuggestion.Edit");
private static final ActionEvent ACTION_EDIT_URL_SUGGESTION_SHARE =
new ActionEvent("Omnibox.EditUrlSuggestion.Share");
/** The delegate for accessing the location bar for observation and modification. */ /** The delegate for accessing the location bar for observation and modification. */
private final LocationBarDelegate mLocationBarDelegate; private final LocationBarDelegate mLocationBarDelegate;
...@@ -227,11 +236,11 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr ...@@ -227,11 +236,11 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr
if (R.id.url_copy_icon == view.getId()) { if (R.id.url_copy_icon == view.getId()) {
recordSuggestionAction(SuggestionAction.COPY); recordSuggestionAction(SuggestionAction.COPY);
RecordUserAction.record("Omnibox.EditUrlSuggestion.Copy"); ACTION_EDIT_URL_SUGGESTION_COPY.record();
Clipboard.getInstance().copyUrlToClipboard(mLastProcessedSuggestion.getUrl()); Clipboard.getInstance().copyUrlToClipboard(mLastProcessedSuggestion.getUrl());
} else if (R.id.url_share_icon == view.getId()) { } else if (R.id.url_share_icon == view.getId()) {
recordSuggestionAction(SuggestionAction.SHARE); recordSuggestionAction(SuggestionAction.SHARE);
RecordUserAction.record("Omnibox.EditUrlSuggestion.Share"); ACTION_EDIT_URL_SUGGESTION_SHARE.record();
mLocationBarDelegate.clearOmniboxFocus(); mLocationBarDelegate.clearOmniboxFocus();
// TODO(mdjones): This should only share the displayed URL instead of the background // TODO(mdjones): This should only share the displayed URL instead of the background
// tab. // tab.
...@@ -242,7 +251,7 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr ...@@ -242,7 +251,7 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr
.share(activityTab, false); .share(activityTab, false);
} else if (R.id.url_edit_icon == view.getId()) { } else if (R.id.url_edit_icon == view.getId()) {
recordSuggestionAction(SuggestionAction.EDIT); recordSuggestionAction(SuggestionAction.EDIT);
RecordUserAction.record("Omnibox.EditUrlSuggestion.Edit"); ACTION_EDIT_URL_SUGGESTION_EDIT.record();
mLocationBarDelegate.setOmniboxEditingText(mLastProcessedSuggestion.getUrl()); mLocationBarDelegate.setOmniboxEditingText(mLastProcessedSuggestion.getUrl());
} }
} }
...@@ -258,7 +267,7 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr ...@@ -258,7 +267,7 @@ public class EditUrlSuggestionProcessor implements OnClickListener, SuggestionPr
*/ */
private void onSuggestionSelected(SuggestionViewDelegate delegate) { private void onSuggestionSelected(SuggestionViewDelegate delegate) {
recordSuggestionAction(SuggestionAction.TAP); recordSuggestionAction(SuggestionAction.TAP);
RecordUserAction.record("Omnibox.EditUrlSuggestion.Tap"); ACTION_EDIT_URL_SUGGESTION_TAP.record();
// If the event wasn't on any of the buttons, treat is as a tap on the general // If the event wasn't on any of the buttons, treat is as a tap on the general
// suggestion. // suggestion.
assert delegate != null : "EditURL suggestion delegate not available"; assert delegate != null : "EditURL suggestion delegate not available";
......
...@@ -11,6 +11,7 @@ import android.view.ViewGroup; ...@@ -11,6 +11,7 @@ import android.view.ViewGroup;
import android.view.ViewStub; import android.view.ViewStub;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.metrics.CachedMetrics;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.ObservableSupplierImpl;
...@@ -38,6 +39,9 @@ import org.chromium.components.feature_engagement.Tracker; ...@@ -38,6 +39,9 @@ import org.chromium.components.feature_engagement.Tracker;
* toolbar and the tab switcher mode bottom toolbar. * toolbar and the tab switcher mode bottom toolbar.
*/ */
class BottomToolbarCoordinator { class BottomToolbarCoordinator {
private static final CachedMetrics.ActionEvent ACCELERATOR_BUTTON_TAP_ACTION =
new CachedMetrics.ActionEvent("MobileToolbarOmniboxAcceleratorTap");
/** The browsing mode bottom toolbar component */ /** The browsing mode bottom toolbar component */
private final BrowsingModeBottomToolbarCoordinator mBrowsingModeCoordinator; private final BrowsingModeBottomToolbarCoordinator mBrowsingModeCoordinator;
...@@ -90,7 +94,7 @@ class BottomToolbarCoordinator { ...@@ -90,7 +94,7 @@ class BottomToolbarCoordinator {
final OnClickListener searchAcceleratorListener = v -> { final OnClickListener searchAcceleratorListener = v -> {
recordBottomToolbarUseForIPH(); recordBottomToolbarUseForIPH();
RecordUserAction.record("MobileToolbarOmniboxAcceleratorTap"); ACCELERATOR_BUTTON_TAP_ACTION.record();
// Only switch to HomePage when overview is showing. // Only switch to HomePage when overview is showing.
if (mOverviewModeBehavior != null && mOverviewModeBehavior.overviewVisible()) { if (mOverviewModeBehavior != null && mOverviewModeBehavior.overviewVisible()) {
......
...@@ -667,6 +667,7 @@ _jar_excluded_patterns = [ ...@@ -667,6 +667,7 @@ _jar_excluded_patterns = [
"*/multidex/*.class", "*/multidex/*.class",
"*/process_launcher/*.class", "*/process_launcher/*.class",
"*/SysUtils*.class", "*/SysUtils*.class",
"*/CachedMetrics*.class",
"org/chromium/base/memory/MemoryPressureMonitor*.class", "org/chromium/base/memory/MemoryPressureMonitor*.class",
] ]
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
# Generated for chrome apk and not included into cronet. # Generated for chrome apk and not included into cronet.
-dontwarn org.chromium.base.library_loader.NativeLibraries -dontwarn org.chromium.base.library_loader.NativeLibraries
-dontwarn org.chromium.base.multidex.ChromiumMultiDexInstaller -dontwarn org.chromium.base.multidex.ChromiumMultiDexInstaller
-dontwarn org.chromium.base.metrics.CachedMetrics
-dontwarn org.chromium.base.library_loader.LibraryLoader -dontwarn org.chromium.base.library_loader.LibraryLoader
-dontwarn org.chromium.base.SysUtils -dontwarn org.chromium.base.SysUtils
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment