Commit 783457c3 authored by miguelg@chromium.org's avatar miguelg@chromium.org

Extend the translate prefs interface with new methods to clear/check blacklisted sites/languages

Add const to some the  retrieve methods.


BUG=149349


Review URL: https://chromiumcodereview.appspot.com/12221147

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182220 0039d316-1c4b-4281-b951-d872f2087c98
parent c2d9ff76
...@@ -27,7 +27,7 @@ TranslatePrefs::TranslatePrefs(PrefService* user_prefs) ...@@ -27,7 +27,7 @@ TranslatePrefs::TranslatePrefs(PrefService* user_prefs)
} }
bool TranslatePrefs::IsLanguageBlacklisted( bool TranslatePrefs::IsLanguageBlacklisted(
const std::string& original_language) { const std::string& original_language) const {
return IsValueBlacklisted(kPrefTranslateLanguageBlacklist, original_language); return IsValueBlacklisted(kPrefTranslateLanguageBlacklist, original_language);
} }
...@@ -40,7 +40,7 @@ void TranslatePrefs::RemoveLanguageFromBlacklist( ...@@ -40,7 +40,7 @@ void TranslatePrefs::RemoveLanguageFromBlacklist(
RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist, original_language); RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist, original_language);
} }
bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) { bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) const {
return IsValueBlacklisted(kPrefTranslateSiteBlacklist, site); return IsValueBlacklisted(kPrefTranslateSiteBlacklist, site);
} }
...@@ -89,7 +89,24 @@ void TranslatePrefs::RemoveLanguagePairFromWhitelist( ...@@ -89,7 +89,24 @@ void TranslatePrefs::RemoveLanguagePairFromWhitelist(
dict->Remove(original_language, NULL); dict->Remove(original_language, NULL);
} }
int TranslatePrefs::GetTranslationDeniedCount(const std::string& language) { bool TranslatePrefs::HasBlacklistedLanguages() const {
return !IsListEmpty(kPrefTranslateLanguageBlacklist);
}
void TranslatePrefs::ClearBlacklistedLanguages() {
prefs_->ClearPref(kPrefTranslateLanguageBlacklist);
}
bool TranslatePrefs::HasBlacklistedSites() {
return !IsListEmpty(kPrefTranslateSiteBlacklist);
}
void TranslatePrefs::ClearBlacklistedSites() {
prefs_->ClearPref(kPrefTranslateSiteBlacklist);
}
int TranslatePrefs::GetTranslationDeniedCount(
const std::string& language) const {
const DictionaryValue* dict = const DictionaryValue* dict =
prefs_->GetDictionary(kPrefTranslateDeniedCount); prefs_->GetDictionary(kPrefTranslateDeniedCount);
int count = 0; int count = 0;
...@@ -210,7 +227,7 @@ void TranslatePrefs::MigrateTranslateWhitelists(PrefService* user_prefs) { ...@@ -210,7 +227,7 @@ void TranslatePrefs::MigrateTranslateWhitelists(PrefService* user_prefs) {
// TranslatePrefs: private: ---------------------------------------------------- // TranslatePrefs: private: ----------------------------------------------------
bool TranslatePrefs::IsValueInList(const ListValue* list, bool TranslatePrefs::IsValueInList(const ListValue* list,
const std::string& in_value) { const std::string& in_value) const {
for (size_t i = 0; i < list->GetSize(); ++i) { for (size_t i = 0; i < list->GetSize(); ++i) {
std::string value; std::string value;
if (list->GetString(i, &value) && value == in_value) if (list->GetString(i, &value) && value == in_value)
...@@ -220,7 +237,7 @@ bool TranslatePrefs::IsValueInList(const ListValue* list, ...@@ -220,7 +237,7 @@ bool TranslatePrefs::IsValueInList(const ListValue* list,
} }
bool TranslatePrefs::IsValueBlacklisted(const char* pref_id, bool TranslatePrefs::IsValueBlacklisted(const char* pref_id,
const std::string& value) { const std::string& value) const {
const ListValue* blacklist = prefs_->GetList(pref_id); const ListValue* blacklist = prefs_->GetList(pref_id);
return (blacklist && !blacklist->empty() && IsValueInList(blacklist, value)); return (blacklist && !blacklist->empty() && IsValueInList(blacklist, value));
} }
...@@ -251,7 +268,7 @@ void TranslatePrefs::RemoveValueFromBlacklist(const char* pref_id, ...@@ -251,7 +268,7 @@ void TranslatePrefs::RemoveValueFromBlacklist(const char* pref_id,
} }
bool TranslatePrefs::IsLanguageWhitelisted( bool TranslatePrefs::IsLanguageWhitelisted(
const std::string& original_language, std::string* target_language) { const std::string& original_language, std::string* target_language) const {
const DictionaryValue* dict = prefs_->GetDictionary(kPrefTranslateWhitelists); const DictionaryValue* dict = prefs_->GetDictionary(kPrefTranslateWhitelists);
if (dict && dict->GetString(original_language, target_language)) { if (dict && dict->GetString(original_language, target_language)) {
DCHECK(!target_language->empty()); DCHECK(!target_language->empty());
...@@ -259,3 +276,8 @@ bool TranslatePrefs::IsLanguageWhitelisted( ...@@ -259,3 +276,8 @@ bool TranslatePrefs::IsLanguageWhitelisted(
} }
return false; return false;
} }
bool TranslatePrefs::IsListEmpty(const char* pref_id) const {
const ListValue* blacklist = prefs_->GetList(pref_id);
return (blacklist == NULL || blacklist->empty());
}
...@@ -27,11 +27,11 @@ class TranslatePrefs { ...@@ -27,11 +27,11 @@ class TranslatePrefs {
explicit TranslatePrefs(PrefService* user_prefs); explicit TranslatePrefs(PrefService* user_prefs);
bool IsLanguageBlacklisted(const std::string& original_language); bool IsLanguageBlacklisted(const std::string& original_language) const;
void BlacklistLanguage(const std::string& original_language); void BlacklistLanguage(const std::string& original_language);
void RemoveLanguageFromBlacklist(const std::string& original_language); void RemoveLanguageFromBlacklist(const std::string& original_language);
bool IsSiteBlacklisted(const std::string& site); bool IsSiteBlacklisted(const std::string& site) const;
void BlacklistSite(const std::string& site); void BlacklistSite(const std::string& site);
void RemoveSiteFromBlacklist(const std::string& site); void RemoveSiteFromBlacklist(const std::string& site);
...@@ -42,16 +42,24 @@ class TranslatePrefs { ...@@ -42,16 +42,24 @@ class TranslatePrefs {
void RemoveLanguagePairFromWhitelist(const std::string& original_language, void RemoveLanguagePairFromWhitelist(const std::string& original_language,
const std::string& target_language); const std::string& target_language);
// Will return true if at least one language has been blacklisted.
bool HasBlacklistedLanguages() const;
void ClearBlacklistedLanguages();
// Will return true if at least one site has been blacklisted.
bool HasBlacklistedSites();
void ClearBlacklistedSites();
// These methods are used to track how many times the user has denied the // These methods are used to track how many times the user has denied the
// translation for a specific language. (So we can present a UI to black-list // translation for a specific language. (So we can present a UI to black-list
// that language if the user keeps denying translations). // that language if the user keeps denying translations).
int GetTranslationDeniedCount(const std::string& language); int GetTranslationDeniedCount(const std::string& language) const;
void IncrementTranslationDeniedCount(const std::string& language); void IncrementTranslationDeniedCount(const std::string& language);
void ResetTranslationDeniedCount(const std::string& language); void ResetTranslationDeniedCount(const std::string& language);
// These methods are used to track how many times the user has accepted the // These methods are used to track how many times the user has accepted the
// translation for a specific language. (So we can present a UI to white-list // translation for a specific language. (So we can present a UI to white-list
// that langueg if the user keeps accepting translations). // that language if the user keeps accepting translations).
int GetTranslationAcceptedCount(const std::string& language); int GetTranslationAcceptedCount(const std::string& language);
void IncrementTranslationAcceptedCount(const std::string& language); void IncrementTranslationAcceptedCount(const std::string& language);
void ResetTranslationAcceptedCount(const std::string& language); void ResetTranslationAcceptedCount(const std::string& language);
...@@ -65,20 +73,21 @@ class TranslatePrefs { ...@@ -65,20 +73,21 @@ class TranslatePrefs {
private: private:
static void MigrateTranslateWhitelists(PrefService* user_prefs); static void MigrateTranslateWhitelists(PrefService* user_prefs);
bool IsValueBlacklisted(const char* pref_id, const std::string& value); bool IsValueBlacklisted(const char* pref_id, const std::string& value) const;
void BlacklistValue(const char* pref_id, const std::string& value); void BlacklistValue(const char* pref_id, const std::string& value);
void RemoveValueFromBlacklist(const char* pref_id, const std::string& value); void RemoveValueFromBlacklist(const char* pref_id, const std::string& value);
bool IsValueInList(const base::ListValue* list, const std::string& value); bool IsValueInList(
const base::ListValue* list, const std::string& value) const;
bool IsLanguageWhitelisted(const std::string& original_language, bool IsLanguageWhitelisted(const std::string& original_language,
std::string* target_language); std::string* target_language) const;
bool IsListEmpty(const char* pref_id) const;
// Retrieves the dictionary mapping the number of times translation has been // Retrieves the dictionary mapping the number of times translation has been
// denied for a language, creating it if necessary. // denied for a language, creating it if necessary.
base::DictionaryValue* GetTranslationDeniedCountDictionary(); base::DictionaryValue* GetTranslationDeniedCountDictionary();
// Retrieves the dictionary mapping the number of times translation has been // Retrieves the dictionary mapping the number of times translation has been
// accepted for a language, creating it if necessary. // accepted for a language, creating it if necessary.
base::DictionaryValue* GetTranslationAcceptedCountDictionary(); base::DictionaryValue* GetTranslationAcceptedCountDictionary() const;
PrefService* prefs_; // Weak. PrefService* prefs_; // Weak.
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment