| 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..05216ff6ef6d63bcabc543f6e004f74847bd9943 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 ? "ContextualSearchManualRefineSingleWord"
|
| + : "ContextualSearchManualRefineMultiWord");
|
| + }
|
| }
|
|
|
| if (!didRequestSurroundings) {
|
|
|