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

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: 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
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 const char TranslatePrefs::kPrefTranslateAutoAlwaysCount[] =
49 "translate_auto_always_count";
50 const char TranslatePrefs::kPrefTranslateAutoNeverCount[] =
51 "translate_auto_never_count";
52
48 // For reading ULP prefs. 53 // For reading ULP prefs.
49 const char kConfidence[] = "confidence"; 54 const char kConfidence[] = "confidence";
50 const char kLanguage[] = "language"; 55 const char kLanguage[] = "language";
51 const char kPreference[] = "preference"; 56 const char kPreference[] = "preference";
52 const char kProbability[] = "probability"; 57 const char kProbability[] = "probability";
53 const char kReading[] = "reading"; 58 const char kReading[] = "reading";
54 59
55 // The below properties used to be used but now are deprecated. Don't use them 60 // 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. 61 // since an old profile might have some values there.
57 // 62 //
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 ClearWhitelistedLanguagePairs(); 186 ClearWhitelistedLanguagePairs();
182 187
183 std::vector<std::string> languages; 188 std::vector<std::string> languages;
184 GetLanguageList(&languages); 189 GetLanguageList(&languages);
185 for (std::vector<std::string>::const_iterator it = languages.begin(); 190 for (std::vector<std::string>::const_iterator it = languages.begin();
186 it != languages.end(); ++it) { 191 it != languages.end(); ++it) {
187 const std::string& language = *it; 192 const std::string& language = *it;
188 ResetTranslationAcceptedCount(language); 193 ResetTranslationAcceptedCount(language);
189 ResetTranslationDeniedCount(language); 194 ResetTranslationDeniedCount(language);
190 ResetTranslationIgnoredCount(language); 195 ResetTranslationIgnoredCount(language);
196 ResetTranslationAutoAlwaysCount(language);
groby-ooo-7-16 2017/06/07 17:02:49 Note: You might want to clear out the entire pref.
Marti Wong 2017/06/09 03:28:26 Thanks. Done.
197 ResetTranslationAutoNeverCount(language);
191 } 198 }
192 199
193 prefs_->ClearPref(kPrefTranslateLastDeniedTimeForLanguage); 200 prefs_->ClearPref(kPrefTranslateLastDeniedTimeForLanguage);
194 prefs_->ClearPref(kPrefTranslateTooOftenDeniedForLanguage); 201 prefs_->ClearPref(kPrefTranslateTooOftenDeniedForLanguage);
195 } 202 }
196 203
197 bool TranslatePrefs::IsBlockedLanguage( 204 bool TranslatePrefs::IsBlockedLanguage(
198 const std::string& original_language) const { 205 const std::string& original_language) const {
199 return IsValueBlacklisted(kPrefTranslateBlockedLanguages, original_language); 206 return IsValueBlacklisted(kPrefTranslateBlockedLanguages, original_language);
200 } 207 }
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 dict->GetInteger(language, &count); 362 dict->GetInteger(language, &count);
356 dict->SetInteger(language, count + 1); 363 dict->SetInteger(language, count + 1);
357 } 364 }
358 365
359 void TranslatePrefs::ResetTranslationAcceptedCount( 366 void TranslatePrefs::ResetTranslationAcceptedCount(
360 const std::string& language) { 367 const std::string& language) {
361 DictionaryPrefUpdate update(prefs_, kPrefTranslateAcceptedCount); 368 DictionaryPrefUpdate update(prefs_, kPrefTranslateAcceptedCount);
362 update.Get()->SetInteger(language, 0); 369 update.Get()->SetInteger(language, 0);
363 } 370 }
364 371
372 int TranslatePrefs::GetTranslationAutoAlwaysCount(
373 const std::string& language) const {
374 const base::DictionaryValue* dict =
375 prefs_->GetDictionary(kPrefTranslateAutoAlwaysCount);
376 int count = 0;
377 return dict->GetInteger(language, &count) ? count : 0;
378 }
379
380 void TranslatePrefs::IncrementTranslationAutoAlwaysCount(
381 const std::string& language) {
382 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoAlwaysCount);
383 base::DictionaryValue* dict = update.Get();
384 int count = 0;
385 dict->GetInteger(language, &count);
386 dict->SetInteger(language, count + 1);
387 }
388
389 void TranslatePrefs::ResetTranslationAutoAlwaysCount(
390 const std::string& language) {
391 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoAlwaysCount);
392 update.Get()->SetInteger(language, 0);
393 }
394
395 int TranslatePrefs::GetTranslationAutoNeverCount(
396 const std::string& language) const {
397 const base::DictionaryValue* dict =
398 prefs_->GetDictionary(kPrefTranslateAutoNeverCount);
399 int count = 0;
400 return dict->GetInteger(language, &count) ? count : 0;
401 }
402
403 void TranslatePrefs::IncrementTranslationAutoNeverCount(
404 const std::string& language) {
405 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoNeverCount);
406 base::DictionaryValue* dict = update.Get();
407 int count = 0;
408 dict->GetInteger(language, &count);
409 dict->SetInteger(language, count + 1);
410 }
411
412 void TranslatePrefs::ResetTranslationAutoNeverCount(
413 const std::string& language) {
414 DictionaryPrefUpdate update(prefs_, kPrefTranslateAutoNeverCount);
415 update.Get()->SetInteger(language, 0);
416 }
417
365 void TranslatePrefs::UpdateLastDeniedTime(const std::string& language) { 418 void TranslatePrefs::UpdateLastDeniedTime(const std::string& language) {
366 if (IsTooOftenDenied(language)) 419 if (IsTooOftenDenied(language))
367 return; 420 return;
368 421
369 DenialTimeUpdate update(prefs_, language, 2); 422 DenialTimeUpdate update(prefs_, language, 2);
370 base::Time now = base::Time::Now(); 423 base::Time now = base::Time::Now();
371 base::Time oldest_denial_time = update.GetOldestDenialTime(); 424 base::Time oldest_denial_time = update.GetOldestDenialTime();
372 update.AddDenialTime(now); 425 update.AddDenialTime(now);
373 426
374 if (oldest_denial_time.is_null()) 427 if (oldest_denial_time.is_null())
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 542 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
490 registry->RegisterListPref(kPrefTranslateBlockedLanguages, 543 registry->RegisterListPref(kPrefTranslateBlockedLanguages,
491 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 544 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
492 registry->RegisterDictionaryPref(kPrefTranslateLastDeniedTimeForLanguage); 545 registry->RegisterDictionaryPref(kPrefTranslateLastDeniedTimeForLanguage);
493 registry->RegisterDictionaryPref( 546 registry->RegisterDictionaryPref(
494 kPrefTranslateTooOftenDeniedForLanguage, 547 kPrefTranslateTooOftenDeniedForLanguage,
495 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 548 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
496 registry->RegisterDictionaryPref( 549 registry->RegisterDictionaryPref(
497 kPrefLanguageProfile, 550 kPrefLanguageProfile,
498 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); 551 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
552 registry->RegisterDictionaryPref(
553 kPrefTranslateAutoAlwaysCount,
554 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
555 registry->RegisterDictionaryPref(
556 kPrefTranslateAutoNeverCount,
557 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
499 } 558 }
500 559
501 // static 560 // static
502 void TranslatePrefs::MigrateUserPrefs(PrefService* user_prefs, 561 void TranslatePrefs::MigrateUserPrefs(PrefService* user_prefs,
503 const char* accept_languages_pref) { 562 const char* accept_languages_pref) {
504 // Old format of kPrefTranslateWhitelists 563 // Old format of kPrefTranslateWhitelists
505 // - original language -> list of target langs to auto-translate 564 // - 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 565 // - list of langs is in order of being enabled i.e. last in list is the
507 // most recent language that user enabled via 566 // most recent language that user enabled via
508 // Always translate |source_lang| to |target_lang|" 567 // 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); 697 out_value->push_back(it);
639 std::sort(out_value->begin(), out_value->end(), 698 std::sort(out_value->begin(), out_value->end(),
640 [](const LanguageAndProbability& left, 699 [](const LanguageAndProbability& left,
641 const LanguageAndProbability& right) { 700 const LanguageAndProbability& right) {
642 return left.second > right.second; 701 return left.second > right.second;
643 }); 702 });
644 return confidence; 703 return confidence;
645 } 704 }
646 705
647 } // namespace translate 706 } // namespace translate
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698