Index: chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchBlacklist.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchBlacklist.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchBlacklist.java |
deleted file mode 100644 |
index 656ed2bea0d727cd273da6f974aab94137594942..0000000000000000000000000000000000000000 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchBlacklist.java |
+++ /dev/null |
@@ -1,223 +0,0 @@ |
-// 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.contextualsearch; |
- |
-import java.util.Collections; |
-import java.util.HashMap; |
-import java.util.Locale; |
-import java.util.Map; |
-import java.util.regex.Pattern; |
- |
-/** |
- * Blacklist used to suppress selections. |
- */ |
-public class ContextualSearchBlacklist { |
- |
- /** |
- * Reasons that may cause a selection to be blacklisted. |
- */ |
- public enum BlacklistReason { |
- NONE, |
- NUMBER, |
- DETERMINER, |
- PREPOSITION, |
- NAVIGATION, |
- MISC |
- } |
- |
- // Number pattern. |
- private static final String DIGITS_PATTERN = "^\\d+$"; |
- private static final Pattern mDigitsPattern = Pattern.compile(DIGITS_PATTERN); |
- |
- // Blacklist. |
- private static final Map<String, BlacklistReason> BLACKLIST; |
- static { |
- Map<String, BlacklistReason> codes = new HashMap<>(); |
- |
- codes.put("a", BlacklistReason.DETERMINER); |
- codes.put("el", BlacklistReason.DETERMINER); |
- codes.put("la", BlacklistReason.DETERMINER); |
- codes.put("that", BlacklistReason.DETERMINER); |
- codes.put("the", BlacklistReason.DETERMINER); |
- codes.put("this", BlacklistReason.DETERMINER); |
- codes.put("un", BlacklistReason.DETERMINER); |
- codes.put("your", BlacklistReason.DETERMINER); |
- |
- codes.put("by", BlacklistReason.PREPOSITION); |
- codes.put("con", BlacklistReason.PREPOSITION); |
- codes.put("del", BlacklistReason.PREPOSITION); |
- codes.put("en", BlacklistReason.PREPOSITION); |
- codes.put("for", BlacklistReason.PREPOSITION); |
- codes.put("from", BlacklistReason.PREPOSITION); |
- codes.put("in", BlacklistReason.PREPOSITION); |
- codes.put("of", BlacklistReason.PREPOSITION); |
- codes.put("on", BlacklistReason.PREPOSITION); |
- codes.put("para", BlacklistReason.PREPOSITION); |
- codes.put("por", BlacklistReason.PREPOSITION); |
- codes.put("to", BlacklistReason.PREPOSITION); |
- codes.put("with", BlacklistReason.PREPOSITION); |
- |
- codes.put("account", BlacklistReason.NAVIGATION); |
- codes.put("com", BlacklistReason.NAVIGATION); |
- codes.put("continuar", BlacklistReason.NAVIGATION); |
- codes.put("continue", BlacklistReason.NAVIGATION); |
- codes.put("download", BlacklistReason.NAVIGATION); |
- codes.put("descargar", BlacklistReason.NAVIGATION); |
- codes.put("facebook", BlacklistReason.NAVIGATION); |
- codes.put("google", BlacklistReason.NAVIGATION); |
- codes.put("here1234567891011", BlacklistReason.NAVIGATION); |
- codes.put("https", BlacklistReason.NAVIGATION); |
- codes.put("lanjutkan", BlacklistReason.NAVIGATION); |
- codes.put("menu", BlacklistReason.NAVIGATION); |
- codes.put("more", BlacklistReason.NAVIGATION); |
- codes.put("next", BlacklistReason.NAVIGATION); |
- codes.put("play", BlacklistReason.NAVIGATION); |
- codes.put("prevnext", BlacklistReason.NAVIGATION); |
- codes.put("search", BlacklistReason.NAVIGATION); |
- codes.put("video", BlacklistReason.NAVIGATION); |
- codes.put("videos", BlacklistReason.NAVIGATION); |
- codes.put("whatsapp", BlacklistReason.NAVIGATION); |
- codes.put("www", BlacklistReason.NAVIGATION); |
- codes.put("youtube", BlacklistReason.NAVIGATION); |
- codes.put("دانلود", BlacklistReason.NAVIGATION); |
- |
- codes.put("and", BlacklistReason.MISC); |
- codes.put("android", BlacklistReason.MISC); |
- codes.put("are", BlacklistReason.MISC); |
- codes.put("available", BlacklistReason.MISC); |
- codes.put("de", BlacklistReason.MISC); |
- codes.put("do", BlacklistReason.MISC); |
- codes.put("e", BlacklistReason.MISC); |
- codes.put("have", BlacklistReason.MISC); |
- codes.put("is", BlacklistReason.MISC); |
- codes.put("m", BlacklistReason.MISC); |
- codes.put("mobile", BlacklistReason.MISC); |
- codes.put("no", BlacklistReason.MISC); |
- codes.put("offline", BlacklistReason.MISC); |
- codes.put("online", BlacklistReason.MISC); |
- codes.put("or", BlacklistReason.MISC); |
- codes.put("page", BlacklistReason.MISC); |
- codes.put("que", BlacklistReason.MISC); |
- codes.put("se", BlacklistReason.MISC); |
- codes.put("videollamadas", BlacklistReason.MISC); |
- codes.put("waiting", BlacklistReason.MISC); |
- codes.put("was", BlacklistReason.MISC); |
- codes.put("x", BlacklistReason.MISC); |
- codes.put("y", BlacklistReason.MISC); |
- codes.put("you", BlacklistReason.MISC); |
- |
- BLACKLIST = Collections.unmodifiableMap(codes); |
- } |
- |
- // Metrics codes. |
- private static final int NONE_SEEN = 0; |
- private static final int NONE_NOT_SEEN = 1; |
- private static final int NUMBER_SEEN = 2; |
- private static final int NUMBER_NOT_SEEN = 3; |
- private static final int DETERMINER_SEEN = 4; |
- private static final int DETERMINER_NOT_SEEN = 5; |
- private static final int PREPOSITION_SEEN = 6; |
- private static final int PREPOSITION_NOT_SEEN = 7; |
- private static final int NAVIGATION_SEEN = 8; |
- private static final int NAVIGATION_NOT_SEEN = 9; |
- private static final int MISC_SEEN = 10; |
- private static final int MISC_NOT_SEEN = 11; |
- public static final int BLACKLIST_BOUNDARY = 12; |
- |
- // Blacklist Metrics Code map. |
- // TODO(pedrosimonetti): Design better solution for getting metrics codes and use it elsewhere. |
- private static final Map<BlacklistSeenKey, Integer> BLACKLIST_METRICS_CODE; |
- static { |
- Map<BlacklistSeenKey, Integer> codes = new HashMap<>(); |
- |
- codes.put(new BlacklistSeenKey(BlacklistReason.NONE, true), NONE_SEEN); |
- codes.put(new BlacklistSeenKey(BlacklistReason.NONE, false), NONE_NOT_SEEN); |
- |
- codes.put(new BlacklistSeenKey(BlacklistReason.NUMBER, true), NUMBER_SEEN); |
- codes.put(new BlacklistSeenKey(BlacklistReason.NUMBER, false), NUMBER_NOT_SEEN); |
- |
- codes.put(new BlacklistSeenKey(BlacklistReason.DETERMINER, true), DETERMINER_SEEN); |
- codes.put(new BlacklistSeenKey(BlacklistReason.DETERMINER, false), DETERMINER_NOT_SEEN); |
- |
- codes.put(new BlacklistSeenKey(BlacklistReason.PREPOSITION, true), PREPOSITION_SEEN); |
- codes.put(new BlacklistSeenKey(BlacklistReason.PREPOSITION, false), PREPOSITION_NOT_SEEN); |
- |
- codes.put(new BlacklistSeenKey(BlacklistReason.NAVIGATION, true), NAVIGATION_SEEN); |
- codes.put(new BlacklistSeenKey(BlacklistReason.NAVIGATION, false), NAVIGATION_NOT_SEEN); |
- |
- codes.put(new BlacklistSeenKey(BlacklistReason.MISC, true), MISC_SEEN); |
- codes.put(new BlacklistSeenKey(BlacklistReason.MISC, false), MISC_NOT_SEEN); |
- |
- BLACKLIST_METRICS_CODE = Collections.unmodifiableMap(codes); |
- } |
- |
- // Key used in the Blacklist Metrics Code map. |
- static class BlacklistSeenKey { |
- final BlacklistReason mReason; |
- final boolean mWasSeen; |
- final int mHashCode; |
- |
- BlacklistSeenKey(BlacklistReason reason, boolean wasSeen) { |
- mReason = reason; |
- mWasSeen = wasSeen; |
- mHashCode = 31 * reason.hashCode() + (wasSeen ? 1231 : 1237); |
- } |
- |
- @Override |
- public boolean equals(Object obj) { |
- if (!(obj instanceof BlacklistSeenKey)) { |
- return false; |
- } |
- if (obj == this) { |
- return true; |
- } |
- BlacklistSeenKey other = (BlacklistSeenKey) obj; |
- return mReason.equals(other.mReason) && mWasSeen == other.mWasSeen; |
- } |
- |
- @Override |
- public int hashCode() { |
- return mHashCode; |
- } |
- } |
- |
- /** |
- * Tests the selection against the blacklist heuristics, returning a reason to suppress the |
- * selection, or BlacklistReason.NONE, if no reason was found to suppress it. |
- * @param selection The given selection. |
- * @return The reason to suppress or not the selection. |
- */ |
- public static BlacklistReason findReasonToSuppressSelection(String selection) { |
- selection = selection.toLowerCase(Locale.getDefault()); |
- |
- if (isNumber(selection)) { |
- return BlacklistReason.NUMBER; |
- } |
- |
- BlacklistReason blacklistReason = BLACKLIST.get(selection); |
- if (blacklistReason != null) { |
- return blacklistReason; |
- } |
- |
- return BlacklistReason.NONE; |
- } |
- |
- /** |
- * @param reason The reason for blacklisting. |
- * @param wasSeen Whether the results were seen. |
- * @return The code used to log the blacklist metrics. |
- */ |
- public static Integer getBlacklistMetricsCode(BlacklistReason reason, boolean wasSeen) { |
- return BLACKLIST_METRICS_CODE.get(new BlacklistSeenKey(reason, wasSeen)); |
- } |
- |
- /** |
- * @param selection A given selection. |
- * @return Whether the given |selection| represents a number. |
- */ |
- private static boolean isNumber(String selection) { |
- return mDigitsPattern.matcher(selection).find(); |
- } |
-} |