summaryrefslogtreecommitdiffstats
path: root/components/search
diff options
context:
space:
mode:
Diffstat (limited to 'components/search')
-rw-r--r--components/search/search.cc8
-rw-r--r--components/search/search.h5
-rw-r--r--components/search/search_unittest.cc32
3 files changed, 45 insertions, 0 deletions
diff --git a/components/search/search.cc b/components/search/search.cc
index 8689e51..d7e7276 100644
--- a/components/search/search.cc
+++ b/components/search/search.cc
@@ -35,6 +35,8 @@ const uint64 kEmbeddedSearchEnabledVersion = 2;
const uint64 kEmbeddedPageVersionDefault = 2;
#endif
+const char kHideVerbatimFlagName[] = "hide_verbatim";
+
// Constants for the field trial name and group prefix.
// Note in M30 and below this field trial was named "InstantExtended" and in
// M31 was renamed to EmbeddedSearch for clarity and cleanliness. Since we
@@ -143,4 +145,10 @@ bool GetBoolValueForFlagWithDefault(const std::string& flag,
return !!GetUInt64ValueForFlagWithDefault(flag, default_value ? 1 : 0, flags);
}
+bool ShouldHideTopVerbatimMatch() {
+ FieldTrialFlags flags;
+ return GetFieldTrialInfo(&flags) && GetBoolValueForFlagWithDefault(
+ kHideVerbatimFlagName, false, flags);
+}
+
} // namespace chrome
diff --git a/components/search/search.h b/components/search/search.h
index df27e60..6cc7927 100644
--- a/components/search/search.h
+++ b/components/search/search.h
@@ -54,6 +54,11 @@ bool GetBoolValueForFlagWithDefault(const std::string& flag,
bool default_value,
const FieldTrialFlags& flags);
+// Returns true if 'hide_verbatim' flag is enabled in field trials
+// to hide the top match in the native suggestions dropdown if it is a verbatim
+// match. See comments on ShouldHideTopMatch in autocomplete_result.h.
+bool ShouldHideTopVerbatimMatch();
+
} // namespace chrome
#endif // COMPONENTS_SEARCH_SEARCH_H_
diff --git a/components/search/search_unittest.cc b/components/search/search_unittest.cc
index b8c4e1d..f4382cc 100644
--- a/components/search/search_unittest.cc
+++ b/components/search/search_unittest.cc
@@ -130,4 +130,36 @@ TEST_F(EmbeddedSearchFieldTrialTest, GetFieldTrialInfoControlFlags) {
EXPECT_EQ(3ul, flags.size());
}
+typedef EmbeddedSearchFieldTrialTest ShouldHideTopVerbatimTest;
+
+TEST_F(ShouldHideTopVerbatimTest, DoNotHideByDefault) {
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch",
+ "Control"));
+ EXPECT_FALSE(ShouldHideTopVerbatimMatch());
+}
+
+TEST_F(ShouldHideTopVerbatimTest, DoNotHideInInstantExtended) {
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch",
+ "Group1"));
+ EXPECT_FALSE(ShouldHideTopVerbatimMatch());
+}
+
+TEST_F(ShouldHideTopVerbatimTest, EnableByFlagInInstantExtended) {
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch",
+ "Group1 hide_verbatim:1"));
+ EXPECT_TRUE(ShouldHideTopVerbatimMatch());
+}
+
+TEST_F(ShouldHideTopVerbatimTest, EnableByFlagOutsideInstantExtended) {
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
+ "EmbeddedSearch", "Controll1 hide_verbatim:1"));
+ EXPECT_TRUE(ShouldHideTopVerbatimMatch());
+}
+
+TEST_F(ShouldHideTopVerbatimTest, DisableByFlag) {
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch",
+ "Group1 hide_verbatim:0"));
+ EXPECT_FALSE(ShouldHideTopVerbatimMatch());
+}
+
} // namespace chrome