Index: chrome/browser/search/search.cc |
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc |
index d4387a18643cd922a5af636bcad74afaa67f0430..68fc4e8292bfd941f1ad39ebc6d6ab263d113e31 100644 |
--- a/chrome/browser/search/search.cc |
+++ b/chrome/browser/search/search.cc |
@@ -69,7 +69,7 @@ const char kUseCacheableNTP[] = "use_cacheable_ntp"; |
const char kPrefetchSearchResultsFlagName[] = "prefetch_results"; |
const char kPrefetchSearchResultsOnSRP[] = "prefetch_results_srp"; |
const char kDisplaySearchButtonFlagName[] = "display_search_button"; |
-const char kEnableOriginChipFlagName[] = "origin_chip"; |
+const char kOriginChipFlagName[] = "origin_chip"; |
#if !defined(OS_IOS) && !defined(OS_ANDROID) |
const char kEnableQueryExtractionFlagName[] = "query_extraction"; |
#endif |
@@ -546,16 +546,30 @@ DisplaySearchButtonConditions GetDisplaySearchButtonConditions() { |
} |
bool ShouldDisplayOriginChip() { |
+ return GetOriginChipPosition() != ORIGIN_CHIP_DISABLED; |
+} |
+ |
+OriginChipPosition GetOriginChipPosition() { |
const CommandLine* cl = CommandLine::ForCurrentProcess(); |
if (cl->HasSwitch(switches::kDisableOriginChip)) { |
- return false; |
- } else if (cl->HasSwitch(switches::kEnableOriginChip)) { |
- return true; |
+ return ORIGIN_CHIP_DISABLED; |
+ } else if (cl->HasSwitch(switches::kEnableOriginChipLeftOfLocationBar)) { |
+ return ORIGIN_CHIP_LEFT_OF_LOCATION_BAR; |
+ } else if (cl->HasSwitch(switches::kEnableOriginChip) || |
+ cl->HasSwitch(switches::kEnableOriginChipRightOfLocationBar)) { |
+ return ORIGIN_CHIP_RIGHT_OF_LOCATION_BAR; |
+ } else if (cl->HasSwitch(switches::kEnableOriginChipLeftOfMenu)) { |
+ return ORIGIN_CHIP_LEFT_OF_MENU; |
} |
FieldTrialFlags flags; |
- return GetFieldTrialInfo(&flags) && GetBoolValueForFlagWithDefault( |
- kEnableOriginChipFlagName, false, flags); |
+ if (!GetFieldTrialInfo(&flags)) |
+ return ORIGIN_CHIP_DISABLED; |
+ uint64 value = |
+ GetUInt64ValueForFlagWithDefault(kOriginChipFlagName, 0, flags); |
+ return (value < ORIGIN_CHIP_NUM_VALUES) ? |
+ static_cast<OriginChipPosition>(value) : |
+ ORIGIN_CHIP_DISABLED; |
} |
GURL GetEffectiveURLForInstant(const GURL& url, Profile* profile) { |