| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/translate/core/browser/translate_prefs.h" | 5 #include "components/translate/core/browser/translate_prefs.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 "translate_blocked_languages"; | 38 "translate_blocked_languages"; |
| 39 const char TranslatePrefs::kPrefTranslateLastDeniedTimeForLanguage[] = | 39 const char TranslatePrefs::kPrefTranslateLastDeniedTimeForLanguage[] = |
| 40 "translate_last_denied_time_for_language"; | 40 "translate_last_denied_time_for_language"; |
| 41 const char TranslatePrefs::kPrefTranslateTooOftenDeniedForLanguage[] = | 41 const char TranslatePrefs::kPrefTranslateTooOftenDeniedForLanguage[] = |
| 42 "translate_too_often_denied_for_language"; | 42 "translate_too_often_denied_for_language"; |
| 43 | 43 |
| 44 const char kTranslateUI2016Q2TrialName[] = "TranslateUI2016Q2"; | 44 const char kTranslateUI2016Q2TrialName[] = "TranslateUI2016Q2"; |
| 45 const char kAlwaysTranslateOfferThreshold[] = | 45 const char kAlwaysTranslateOfferThreshold[] = |
| 46 "always_translate_offer_threshold"; | 46 "always_translate_offer_threshold"; |
| 47 | 47 |
| 48 #if defined(OS_ANDROID) |
| 49 const char TranslatePrefs::kPrefTranslateAutoAlwaysCount[] = |
| 50 "translate_auto_always_count"; |
| 51 const char TranslatePrefs::kPrefTranslateAutoNeverCount[] = |
| 52 "translate_auto_never_count"; |
| 53 #endif |
| 54 |
| 48 // For reading ULP prefs. | 55 // For reading ULP prefs. |
| 49 const char kConfidence[] = "confidence"; | 56 const char kConfidence[] = "confidence"; |
| 50 const char kLanguage[] = "language"; | 57 const char kLanguage[] = "language"; |
| 51 const char kPreference[] = "preference"; | 58 const char kPreference[] = "preference"; |
| 52 const char kProbability[] = "probability"; | 59 const char kProbability[] = "probability"; |
| 53 const char kReading[] = "reading"; | 60 const char kReading[] = "reading"; |
| 54 | 61 |
| 55 // The below properties used to be used but now are deprecated. Don't use them | 62 // The below properties used to be used but now are deprecated. Don't use them |
| 56 // since an old profile might have some values there. | 63 // since an old profile might have some values there. |
| 57 // | 64 // |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 | 189 |
| 183 std::vector<std::string> languages; | 190 std::vector<std::string> languages; |
| 184 GetLanguageList(&languages); | 191 GetLanguageList(&languages); |
| 185 for (std::vector<std::string>::const_iterator it = languages.begin(); | 192 for (std::vector<std::string>::const_iterator it = languages.begin(); |
| 186 it != languages.end(); ++it) { | 193 it != languages.end(); ++it) { |
| 187 const std::string& language = *it; | 194 const std::string& language = *it; |
| 188 ResetTranslationAcceptedCount(language); | 195 ResetTranslationAcceptedCount(language); |
| 189 ResetTranslationDeniedCount(language); | 196 ResetTranslationDeniedCount(language); |
| 190 ResetTranslationIgnoredCount(language); | 197 ResetTranslationIgnoredCount(language); |
| 191 } | 198 } |
| 199 #if defined(OS_ANDROID) |
| 200 prefs_->ClearPref(kPrefTranslateAutoAlwaysCount); |
| 201 prefs_->ClearPref(kPrefTranslateAutoNeverCount); |
| 202 #endif |
| 192 | 203 |
| 193 prefs_->ClearPref(kPrefTranslateLastDeniedTimeForLanguage); | 204 prefs_->ClearPref(kPrefTranslateLastDeniedTimeForLanguage); |
| 194 prefs_->ClearPref(kPrefTranslateTooOftenDeniedForLanguage); | 205 prefs_->ClearPref(kPrefTranslateTooOftenDeniedForLanguage); |
| 195 } | 206 } |
| 196 | 207 |
| 197 bool TranslatePrefs::IsBlockedLanguage( | 208 bool TranslatePrefs::IsBlockedLanguage( |
| 198 const std::string& original_language) const { | 209 const std::string& original_language) const { |
| 199 return IsValueBlacklisted(kPrefTranslateBlockedLanguages, original_language); | 210 return IsValueBlacklisted(kPrefTranslateBlockedLanguages, original_language); |
| 200 } | 211 } |
| 201 | 212 |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 dict->GetInteger(language, &count); | 366 dict->GetInteger(language, &count); |
| 356 dict->SetInteger(language, count + 1); | 367 dict->SetInteger(language, count + 1); |
| 357 } | 368 } |
| 358 | 369 |
| 359 void TranslatePrefs::ResetTranslationAcceptedCount( | 370 void TranslatePrefs::ResetTranslationAcceptedCount( |
| 360 const std::string& language) { | 371 const std::string& language) { |
| 361 DictionaryPrefUpdate update(prefs_, kPrefTranslateAcceptedCount); | 372 DictionaryPrefUpdate update(prefs_, kPrefTranslateAcceptedCount); |
| 362 update.Get()->SetInteger(language, 0); | 373 update.Get()->SetInteger(language, 0); |
| 363 } | 374 } |
| 364 | 375 |
| 376 #if defined(OS_ANDROID) |
| 377 int TranslatePrefs::GetTranslationAutoAlwaysCount( |
| 378 const std::string& language) const { |
| 379 const base::DictionaryValue* dict = |
| 380 prefs_->GetDictionary(kPrefTranslateAutoAlwaysCount); |
| 381 int count = 0; |
| 382 return dict->GetInteger(language, &count) ? count : 0; |
| 383 } |
| 384 |
| 385 void TranslatePrefs::IncrementTranslationAutoAlwaysCount( |
| 386 const std::string& language) { |
| 387 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoAlwaysCount); |
| 388 base::DictionaryValue* dict = update.Get(); |
| 389 int count = 0; |
| 390 dict->GetInteger(language, &count); |
| 391 dict->SetInteger(language, count + 1); |
| 392 } |
| 393 |
| 394 void TranslatePrefs::ResetTranslationAutoAlwaysCount( |
| 395 const std::string& language) { |
| 396 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoAlwaysCount); |
| 397 update.Get()->SetInteger(language, 0); |
| 398 } |
| 399 |
| 400 int TranslatePrefs::GetTranslationAutoNeverCount( |
| 401 const std::string& language) const { |
| 402 const base::DictionaryValue* dict = |
| 403 prefs_->GetDictionary(kPrefTranslateAutoNeverCount); |
| 404 int count = 0; |
| 405 return dict->GetInteger(language, &count) ? count : 0; |
| 406 } |
| 407 |
| 408 void TranslatePrefs::IncrementTranslationAutoNeverCount( |
| 409 const std::string& language) { |
| 410 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoNeverCount); |
| 411 base::DictionaryValue* dict = update.Get(); |
| 412 int count = 0; |
| 413 dict->GetInteger(language, &count); |
| 414 dict->SetInteger(language, count + 1); |
| 415 } |
| 416 |
| 417 void TranslatePrefs::ResetTranslationAutoNeverCount( |
| 418 const std::string& language) { |
| 419 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoNeverCount); |
| 420 update.Get()->SetInteger(language, 0); |
| 421 } |
| 422 #endif // defined(OS_ANDROID) |
| 423 |
| 365 void TranslatePrefs::UpdateLastDeniedTime(const std::string& language) { | 424 void TranslatePrefs::UpdateLastDeniedTime(const std::string& language) { |
| 366 if (IsTooOftenDenied(language)) | 425 if (IsTooOftenDenied(language)) |
| 367 return; | 426 return; |
| 368 | 427 |
| 369 DenialTimeUpdate update(prefs_, language, 2); | 428 DenialTimeUpdate update(prefs_, language, 2); |
| 370 base::Time now = base::Time::Now(); | 429 base::Time now = base::Time::Now(); |
| 371 base::Time oldest_denial_time = update.GetOldestDenialTime(); | 430 base::Time oldest_denial_time = update.GetOldestDenialTime(); |
| 372 update.AddDenialTime(now); | 431 update.AddDenialTime(now); |
| 373 | 432 |
| 374 if (oldest_denial_time.is_null()) | 433 if (oldest_denial_time.is_null()) |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); | 548 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| 490 registry->RegisterListPref(kPrefTranslateBlockedLanguages, | 549 registry->RegisterListPref(kPrefTranslateBlockedLanguages, |
| 491 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); | 550 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| 492 registry->RegisterDictionaryPref(kPrefTranslateLastDeniedTimeForLanguage); | 551 registry->RegisterDictionaryPref(kPrefTranslateLastDeniedTimeForLanguage); |
| 493 registry->RegisterDictionaryPref( | 552 registry->RegisterDictionaryPref( |
| 494 kPrefTranslateTooOftenDeniedForLanguage, | 553 kPrefTranslateTooOftenDeniedForLanguage, |
| 495 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); | 554 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| 496 registry->RegisterDictionaryPref( | 555 registry->RegisterDictionaryPref( |
| 497 kPrefLanguageProfile, | 556 kPrefLanguageProfile, |
| 498 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); | 557 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); |
| 558 #if defined(OS_ANDROID) |
| 559 registry->RegisterDictionaryPref( |
| 560 kPrefTranslateAutoAlwaysCount, |
| 561 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| 562 registry->RegisterDictionaryPref( |
| 563 kPrefTranslateAutoNeverCount, |
| 564 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| 565 #endif |
| 499 } | 566 } |
| 500 | 567 |
| 501 // static | 568 // static |
| 502 void TranslatePrefs::MigrateUserPrefs(PrefService* user_prefs, | 569 void TranslatePrefs::MigrateUserPrefs(PrefService* user_prefs, |
| 503 const char* accept_languages_pref) { | 570 const char* accept_languages_pref) { |
| 504 // Old format of kPrefTranslateWhitelists | 571 // Old format of kPrefTranslateWhitelists |
| 505 // - original language -> list of target langs to auto-translate | 572 // - original language -> list of target langs to auto-translate |
| 506 // - list of langs is in order of being enabled i.e. last in list is the | 573 // - list of langs is in order of being enabled i.e. last in list is the |
| 507 // most recent language that user enabled via | 574 // most recent language that user enabled via |
| 508 // Always translate |source_lang| to |target_lang|" | 575 // Always translate |source_lang| to |target_lang|" |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 out_value->push_back(it); | 705 out_value->push_back(it); |
| 639 std::sort(out_value->begin(), out_value->end(), | 706 std::sort(out_value->begin(), out_value->end(), |
| 640 [](const LanguageAndProbability& left, | 707 [](const LanguageAndProbability& left, |
| 641 const LanguageAndProbability& right) { | 708 const LanguageAndProbability& right) { |
| 642 return left.second > right.second; | 709 return left.second > right.second; |
| 643 }); | 710 }); |
| 644 return confidence; | 711 return confidence; |
| 645 } | 712 } |
| 646 | 713 |
| 647 } // namespace translate | 714 } // namespace translate |
| OLD | NEW |