Index: components/translate/core/browser/translate_prefs.cc |
diff --git a/components/translate/core/browser/translate_prefs.cc b/components/translate/core/browser/translate_prefs.cc |
index 83c7cc8e7ecc9253e3352199b870f05c4c1df94a..d15a76f24beb1e923cabf84236a81f7404e71a6c 100644 |
--- a/components/translate/core/browser/translate_prefs.cc |
+++ b/components/translate/core/browser/translate_prefs.cc |
@@ -7,6 +7,7 @@ |
#include <set> |
#include "base/memory/ptr_util.h" |
+#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_split.h" |
#include "base/strings/string_util.h" |
#include "build/build_config.h" |
@@ -17,6 +18,7 @@ |
#include "components/translate/core/browser/translate_download_manager.h" |
#include "components/translate/core/browser/translate_experiment.h" |
#include "components/translate/core/common/translate_util.h" |
+#include "components/variations/variations_associated_data.h" |
namespace translate { |
@@ -35,6 +37,9 @@ const char TranslatePrefs::kPrefTranslateLastDeniedTimeForLanguage[] = |
"translate_last_denied_time_for_language"; |
const char TranslatePrefs::kPrefTranslateTooOftenDeniedForLanguage[] = |
"translate_too_often_denied_for_language"; |
+const char kTranslateUI2016Q2TrialName[] = "TranslateUI2016Q2"; |
+const char kNumOfTranslationTriggerAlways[] = |
+ "num_of_translation_trigger_always"; |
// The below properties used to be used but now are deprecated. Don't use them |
// since an old profile might have some values there. |
@@ -448,6 +453,34 @@ bool TranslatePrefs::ShouldAutoTranslate(const std::string& original_language, |
return false; |
} |
+bool TranslatePrefs::ShouldAlwaysTranslateBeCheckedByDefault( |
groby-ooo-7-16
2016/06/27 23:00:34
This is moving even more policy decisions into pre
ftang
2016/06/28 05:01:46
moved
|
+ const std::string& language) { |
+ std::map<std::string, std::string> params; |
+ int num_of_translation_trigger_default_checked = -1; |
groby-ooo-7-16
2016/06/27 23:00:34
StringToInt *will* force this to 0 on error.
ftang
2016/06/28 05:01:46
Done.
|
+ if (variations::GetVariationParams(translate::kTranslateUI2016Q2TrialName, |
+ ¶ms)) { |
+ std::map<std::string, std::string>::const_iterator it = |
groby-ooo-7-16
2016/06/27 23:00:34
auto it = params.find
Or, if you want even short
ftang
2016/06/28 05:01:46
Done.
|
+ params.find(translate::kNumOfTranslationTriggerAlways); |
+ if (it != params.end()) { |
+ base::StringToInt(it->second, |
+ &num_of_translation_trigger_default_checked); |
+ } |
+ } |
+ |
+ if (num_of_translation_trigger_default_checked < 0) { |
+ return false; |
+ } |
+ |
+ // After N clicks on Translate for the same language. |
+ // We check for == N instead of >= N because if the user translates with the |
+ // "Always do this?" on, then the next time the bubble won't show up. |
+ // The only chance the bubble will show up is after the user manually unchecks |
+ // "Always do this?". In that case, since it is after user explictly unchecks, |
+ // we should show as it as unchecked so we only check == N instead of >= N. |
+ return GetTranslationAcceptedCount(language) == |
+ num_of_translation_trigger_default_checked; |
+} |
+ |
// static |
void TranslatePrefs::RegisterProfilePrefs( |
user_prefs::PrefRegistrySyncable* registry) { |