Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Side by Side Diff: components/translate/core/browser/translate_prefs.cc

Issue 2920953002: Auto-always/never can at most triggered twice (new translate infobar) (Closed)
Patch Set: fix Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/translate/core/browser/translate_prefs.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « components/translate/core/browser/translate_prefs.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698