Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java |
| index 38e3ab719b52a8ef0a48dc60c49ec6ade424f85c..b61d2f020111ad407f585285e66e7a597060e5e4 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java |
| @@ -14,6 +14,7 @@ import org.chromium.base.ObserverList; |
| import org.chromium.base.SysUtils; |
| import org.chromium.base.VisibleForTesting; |
| import org.chromium.base.annotations.CalledByNative; |
| +import org.chromium.base.metrics.RecordUserAction; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.ChromeActivity; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayContentDelegate; |
| @@ -50,6 +51,7 @@ import org.chromium.ui.base.WindowAndroid; |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| +import java.util.regex.Pattern; |
| import javax.annotation.Nullable; |
| @@ -78,6 +80,8 @@ public class ContextualSearchManager implements ContextualSearchManagementDelega |
| // We blacklist this URL because malformed URLs may bring up this page. |
| private static final String BLACKLISTED_URL = "about:blank"; |
| + private static final Pattern CONTAINS_WHITESPACE_PATTERN = Pattern.compile("\\s"); |
| + |
| private final ObserverList<ContextualSearchObserver> mObservers = |
| new ObserverList<ContextualSearchObserver>(); |
| @@ -424,6 +428,18 @@ public class ContextualSearchManager implements ContextualSearchManagementDelega |
| mDidStartLoadingResolvedSearchRequest = false; |
| mSearchPanel.setSearchTerm(mSelectionController.getSelectedText()); |
| if (shouldPrefetch) loadSearchUrl(); |
| + |
| + // Record metrics for manual refinement of the search term from long-press. |
| + // TODO(donnd): remove this section once metrics have been analyzed. |
| + if (mSelectionController.getSelectionType() == SelectionType.LONG_PRESS |
| + && mSearchPanel.isPeeking()) { |
| + boolean isSingleWord = |
| + !CONTAINS_WHITESPACE_PATTERN |
| + .matcher(mSelectionController.getSelectedText().trim()) |
| + .find(); |
| + RecordUserAction.record(isSingleWord ? "ContextualSearch.ManualRefineSingleWord" |
|
rkaplow
2016/05/12 22:01:51
would this make more sense as a histogram? Do you
Donn Denman
2016/05/12 22:12:58
Yes, we do want the timing information because we'
|
| + : "ContextualSearch.ManualRefineMultiWord"); |
| + } |
| } |
| if (!didRequestSurroundings) { |