| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/ntp_snippets/features.h" | 5 #include "components/ntp_snippets/features.h" |
| 6 | 6 |
| 7 #include "base/feature_list.h" |
| 7 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 8 #include "base/time/clock.h" | 9 #include "base/time/clock.h" |
| 9 #include "components/ntp_snippets/category_rankers/click_based_category_ranker.h
" | 10 #include "components/ntp_snippets/category_rankers/click_based_category_ranker.h
" |
| 10 #include "components/ntp_snippets/category_rankers/constant_category_ranker.h" | 11 #include "components/ntp_snippets/category_rankers/constant_category_ranker.h" |
| 11 #include "components/variations/variations_associated_data.h" | 12 #include "components/variations/variations_associated_data.h" |
| 12 | 13 |
| 13 namespace ntp_snippets { | 14 namespace ntp_snippets { |
| 14 | 15 |
| 15 const base::Feature kArticleSuggestionsFeature{ | 16 const base::Feature kArticleSuggestionsFeature{ |
| 16 "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT}; | 17 "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT}; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 // Default, Enabled or Disabled. | 59 // Default, Enabled or Disabled. |
| 59 return CategoryRankerChoice::CLICK_BASED; | 60 return CategoryRankerChoice::CLICK_BASED; |
| 60 } | 61 } |
| 61 if (category_ranker_value == kCategoryRankerConstantRanker) { | 62 if (category_ranker_value == kCategoryRankerConstantRanker) { |
| 62 return CategoryRankerChoice::CONSTANT; | 63 return CategoryRankerChoice::CONSTANT; |
| 63 } | 64 } |
| 64 if (category_ranker_value == kCategoryRankerClickBasedRanker) { | 65 if (category_ranker_value == kCategoryRankerClickBasedRanker) { |
| 65 return CategoryRankerChoice::CLICK_BASED; | 66 return CategoryRankerChoice::CLICK_BASED; |
| 66 } | 67 } |
| 67 | 68 |
| 68 NOTREACHED() << "The " << kCategoryRankerParameter << " parameter value is '" | 69 LOG(DFATAL) << "The " << kCategoryRankerParameter << " parameter value is '" |
| 69 << category_ranker_value << "'"; | 70 << category_ranker_value << "'"; |
| 70 return CategoryRankerChoice::CONSTANT; | 71 return CategoryRankerChoice::CONSTANT; |
| 71 } | 72 } |
| 72 | 73 |
| 73 std::unique_ptr<CategoryRanker> BuildSelectedCategoryRanker( | 74 std::unique_ptr<CategoryRanker> BuildSelectedCategoryRanker( |
| 74 PrefService* pref_service, | 75 PrefService* pref_service, |
| 75 std::unique_ptr<base::Clock> clock) { | 76 std::unique_ptr<base::Clock> clock) { |
| 76 CategoryRankerChoice choice = ntp_snippets::GetSelectedCategoryRanker(); | 77 CategoryRankerChoice choice = ntp_snippets::GetSelectedCategoryRanker(); |
| 77 switch (choice) { | 78 switch (choice) { |
| 78 case CategoryRankerChoice::CONSTANT: | 79 case CategoryRankerChoice::CONSTANT: |
| 79 return base::MakeUnique<ConstantCategoryRanker>(); | 80 return base::MakeUnique<ConstantCategoryRanker>(); |
| 80 case CategoryRankerChoice::CLICK_BASED: | 81 case CategoryRankerChoice::CLICK_BASED: |
| 81 return base::MakeUnique<ClickBasedCategoryRanker>(pref_service, | 82 return base::MakeUnique<ClickBasedCategoryRanker>(pref_service, |
| 82 std::move(clock)); | 83 std::move(clock)); |
| 83 default: | |
| 84 NOTREACHED() << "The category ranker choice value is " | |
| 85 << static_cast<int>(choice); | |
| 86 } | 84 } |
| 87 return nullptr; | 85 return nullptr; |
| 88 } | 86 } |
| 89 | 87 |
| 88 const base::Feature kCategoryOrder{"ContentSuggestionsCategoryOrder", |
| 89 base::FEATURE_DISABLED_BY_DEFAULT}; |
| 90 |
| 91 const char kCategoryOrderParameter[] = "category_order"; |
| 92 const char kCategoryOrderGeneral[] = "general"; |
| 93 const char kCategoryOrderEmergingMarketsOriented[] = |
| 94 "emerging_markets_oriented"; |
| 95 |
| 96 CategoryOrderChoice GetSelectedCategoryOrder() { |
| 97 if (!base::FeatureList::IsEnabled(kCategoryOrder)) { |
| 98 return CategoryOrderChoice::GENERAL; |
| 99 } |
| 100 |
| 101 std::string category_order_value = |
| 102 variations::GetVariationParamValueByFeature(kCategoryOrder, |
| 103 kCategoryOrderParameter); |
| 104 |
| 105 if (category_order_value.empty()) { |
| 106 // Enabled with no parameters. |
| 107 return CategoryOrderChoice::GENERAL; |
| 108 } |
| 109 if (category_order_value == kCategoryOrderGeneral) { |
| 110 return CategoryOrderChoice::GENERAL; |
| 111 } |
| 112 if (category_order_value == kCategoryOrderEmergingMarketsOriented) { |
| 113 return CategoryOrderChoice::EMERGING_MARKETS_ORIENTED; |
| 114 } |
| 115 |
| 116 LOG(DFATAL) << "The " << kCategoryOrderParameter << " parameter value is '" |
| 117 << category_order_value << "'"; |
| 118 return CategoryOrderChoice::GENERAL; |
| 119 } |
| 120 |
| 90 } // namespace ntp_snippets | 121 } // namespace ntp_snippets |
| OLD | NEW |