| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/translate/translate_ui_delegate.h" | 5 #include "chrome/browser/translate/translate_ui_delegate.h" |
| 6 | 6 |
| 7 #include "base/i18n/string_compare.h" | 7 #include "base/i18n/string_compare.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 prefs_->ResetTranslationAcceptedCount(GetOriginalLanguageCode()); | 174 prefs_->ResetTranslationAcceptedCount(GetOriginalLanguageCode()); |
| 175 prefs_->IncrementTranslationDeniedCount(GetOriginalLanguageCode()); | 175 prefs_->IncrementTranslationDeniedCount(GetOriginalLanguageCode()); |
| 176 } | 176 } |
| 177 | 177 |
| 178 // Remember that the user declined the translation so as to prevent showing a | 178 // Remember that the user declined the translation so as to prevent showing a |
| 179 // translate infobar for that page again. (TranslateManager initiates | 179 // translate infobar for that page again. (TranslateManager initiates |
| 180 // translations when getting a LANGUAGE_DETERMINED from the page, which | 180 // translations when getting a LANGUAGE_DETERMINED from the page, which |
| 181 // happens when a load stops. That could happen multiple times, including | 181 // happens when a load stops. That could happen multiple times, including |
| 182 // after the user already declined the translation.) | 182 // after the user already declined the translation.) |
| 183 TranslateTabHelper::FromWebContents(web_contents())-> | 183 TranslateTabHelper::FromWebContents(web_contents())-> |
| 184 language_state().set_translation_declined(true); | 184 GetLanguageState().set_translation_declined(true); |
| 185 | 185 |
| 186 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true); | 186 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true); |
| 187 | 187 |
| 188 if (!explicitly_closed) | 188 if (!explicitly_closed) |
| 189 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslateDismissUI, true); | 189 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslateDismissUI, true); |
| 190 } | 190 } |
| 191 | 191 |
| 192 bool TranslateUIDelegate::IsLanguageBlocked() { | 192 bool TranslateUIDelegate::IsLanguageBlocked() { |
| 193 return prefs_->IsBlockedLanguage(GetOriginalLanguageCode()); | 193 return prefs_->IsBlockedLanguage(GetOriginalLanguageCode()); |
| 194 } | 194 } |
| 195 | 195 |
| 196 void TranslateUIDelegate::SetLanguageBlocked(bool value) { | 196 void TranslateUIDelegate::SetLanguageBlocked(bool value) { |
| 197 if (value) { | 197 if (value) { |
| 198 prefs_->BlockLanguage(GetOriginalLanguageCode()); | 198 prefs_->BlockLanguage(GetOriginalLanguageCode()); |
| 199 TranslateTabHelper* translate_tab_helper = | 199 TranslateTabHelper* translate_tab_helper = |
| 200 TranslateTabHelper::FromWebContents(web_contents()); | 200 TranslateTabHelper::FromWebContents(web_contents()); |
| 201 DCHECK(translate_tab_helper); | 201 DCHECK(translate_tab_helper); |
| 202 translate_tab_helper->language_state().SetTranslateEnabled(false); | 202 translate_tab_helper->GetLanguageState().SetTranslateEnabled(false); |
| 203 } else { | 203 } else { |
| 204 prefs_->UnblockLanguage(GetOriginalLanguageCode()); | 204 prefs_->UnblockLanguage(GetOriginalLanguageCode()); |
| 205 } | 205 } |
| 206 | 206 |
| 207 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateLang, true); | 207 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateLang, true); |
| 208 } | 208 } |
| 209 | 209 |
| 210 bool TranslateUIDelegate::IsSiteBlacklisted() { | 210 bool TranslateUIDelegate::IsSiteBlacklisted() { |
| 211 std::string host = GetPageHost(); | 211 std::string host = GetPageHost(); |
| 212 return !host.empty() && prefs_->IsSiteBlacklisted(host); | 212 return !host.empty() && prefs_->IsSiteBlacklisted(host); |
| 213 } | 213 } |
| 214 | 214 |
| 215 void TranslateUIDelegate::SetSiteBlacklist(bool value) { | 215 void TranslateUIDelegate::SetSiteBlacklist(bool value) { |
| 216 std::string host = GetPageHost(); | 216 std::string host = GetPageHost(); |
| 217 if (host.empty()) | 217 if (host.empty()) |
| 218 return; | 218 return; |
| 219 | 219 |
| 220 if (value) { | 220 if (value) { |
| 221 prefs_->BlacklistSite(host); | 221 prefs_->BlacklistSite(host); |
| 222 TranslateTabHelper* translate_tab_helper = | 222 TranslateTabHelper* translate_tab_helper = |
| 223 TranslateTabHelper::FromWebContents(web_contents()); | 223 TranslateTabHelper::FromWebContents(web_contents()); |
| 224 DCHECK(translate_tab_helper); | 224 DCHECK(translate_tab_helper); |
| 225 translate_tab_helper->language_state().SetTranslateEnabled(false); | 225 translate_tab_helper->GetLanguageState().SetTranslateEnabled(false); |
| 226 } else { | 226 } else { |
| 227 prefs_->RemoveSiteFromBlacklist(host); | 227 prefs_->RemoveSiteFromBlacklist(host); |
| 228 } | 228 } |
| 229 | 229 |
| 230 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateSite, true); | 230 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateSite, true); |
| 231 } | 231 } |
| 232 | 232 |
| 233 bool TranslateUIDelegate::ShouldAlwaysTranslate() { | 233 bool TranslateUIDelegate::ShouldAlwaysTranslate() { |
| 234 return prefs_->IsLanguagePairWhitelisted(GetOriginalLanguageCode(), | 234 return prefs_->IsLanguagePairWhitelisted(GetOriginalLanguageCode(), |
| 235 GetTargetLanguageCode()); | 235 GetTargetLanguageCode()); |
| 236 } | 236 } |
| 237 | 237 |
| 238 void TranslateUIDelegate::SetAlwaysTranslate(bool value) { | 238 void TranslateUIDelegate::SetAlwaysTranslate(bool value) { |
| 239 const std::string& original_lang = GetOriginalLanguageCode(); | 239 const std::string& original_lang = GetOriginalLanguageCode(); |
| 240 const std::string& target_lang = GetTargetLanguageCode(); | 240 const std::string& target_lang = GetTargetLanguageCode(); |
| 241 if (value) | 241 if (value) |
| 242 prefs_->WhitelistLanguagePair(original_lang, target_lang); | 242 prefs_->WhitelistLanguagePair(original_lang, target_lang); |
| 243 else | 243 else |
| 244 prefs_->RemoveLanguagePairFromWhitelist(original_lang, target_lang); | 244 prefs_->RemoveLanguagePairFromWhitelist(original_lang, target_lang); |
| 245 | 245 |
| 246 UMA_HISTOGRAM_BOOLEAN(kAlwaysTranslateLang, true); | 246 UMA_HISTOGRAM_BOOLEAN(kAlwaysTranslateLang, true); |
| 247 } | 247 } |
| 248 | 248 |
| 249 std::string TranslateUIDelegate::GetPageHost() { | 249 std::string TranslateUIDelegate::GetPageHost() { |
| 250 content::NavigationEntry* entry = | 250 content::NavigationEntry* entry = |
| 251 web_contents()->GetController().GetActiveEntry(); | 251 web_contents()->GetController().GetActiveEntry(); |
| 252 return entry ? entry->GetURL().HostNoBrackets() : std::string(); | 252 return entry ? entry->GetURL().HostNoBrackets() : std::string(); |
| 253 } | 253 } |
| OLD | NEW |