OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_infobar_delegate.h" | 5 #include "chrome/browser/translate/translate_infobar_delegate.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/i18n/string_compare.h" | 9 #include "base/i18n/string_compare.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 ui_delegate_.Translate(); | 126 ui_delegate_.Translate(); |
127 } | 127 } |
128 | 128 |
129 void TranslateInfoBarDelegate::RevertTranslation() { | 129 void TranslateInfoBarDelegate::RevertTranslation() { |
130 ui_delegate_.RevertTranslation(); | 130 ui_delegate_.RevertTranslation(); |
131 infobar()->RemoveSelf(); | 131 infobar()->RemoveSelf(); |
132 } | 132 } |
133 | 133 |
134 void TranslateInfoBarDelegate::ReportLanguageDetectionError() { | 134 void TranslateInfoBarDelegate::ReportLanguageDetectionError() { |
135 TranslateManager* manager = | 135 TranslateManager* manager = |
136 TranslateTabHelper::GetManagerFromWebContents(web_contents()); | 136 TranslateTabHelper::GetManagerFromWebContents(GetWebContents()); |
137 if (!manager) | 137 if (!manager) |
138 return; | 138 return; |
139 manager->ReportLanguageDetectionError(); | 139 manager->ReportLanguageDetectionError(); |
140 } | 140 } |
141 | 141 |
142 void TranslateInfoBarDelegate::TranslationDeclined() { | 142 void TranslateInfoBarDelegate::TranslationDeclined() { |
143 ui_delegate_.TranslationDeclined(false); | 143 ui_delegate_.TranslationDeclined(false); |
144 } | 144 } |
145 | 145 |
146 bool TranslateInfoBarDelegate::IsTranslatableLanguageByPrefs() { | 146 bool TranslateInfoBarDelegate::IsTranslatableLanguageByPrefs() { |
147 Profile* profile = | 147 Profile* profile = |
148 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 148 Profile::FromBrowserContext(GetWebContents()->GetBrowserContext()); |
149 Profile* original_profile = profile->GetOriginalProfile(); | 149 Profile* original_profile = profile->GetOriginalProfile(); |
150 scoped_ptr<TranslatePrefs> translate_prefs( | 150 scoped_ptr<TranslatePrefs> translate_prefs( |
151 TranslateTabHelper::CreateTranslatePrefs(original_profile->GetPrefs())); | 151 TranslateTabHelper::CreateTranslatePrefs(original_profile->GetPrefs())); |
152 TranslateAcceptLanguages* accept_languages = | 152 TranslateAcceptLanguages* accept_languages = |
153 TranslateTabHelper::GetTranslateAcceptLanguages(original_profile); | 153 TranslateTabHelper::GetTranslateAcceptLanguages(original_profile); |
154 return translate_prefs->CanTranslateLanguage(accept_languages, | 154 return translate_prefs->CanTranslateLanguage(accept_languages, |
155 original_language_code()); | 155 original_language_code()); |
156 } | 156 } |
157 | 157 |
158 void TranslateInfoBarDelegate::ToggleTranslatableLanguageByPrefs() { | 158 void TranslateInfoBarDelegate::ToggleTranslatableLanguageByPrefs() { |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 } | 248 } |
249 | 249 |
250 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { | 250 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { |
251 DCHECK_EQ(translate::TRANSLATE_STEP_TRANSLATE_ERROR, step_); | 251 DCHECK_EQ(translate::TRANSLATE_STEP_TRANSLATE_ERROR, step_); |
252 if (error_type_ == TranslateErrors::UNSUPPORTED_LANGUAGE) { | 252 if (error_type_ == TranslateErrors::UNSUPPORTED_LANGUAGE) { |
253 RevertTranslation(); | 253 RevertTranslation(); |
254 return; | 254 return; |
255 } | 255 } |
256 // This is the "Try again..." case. | 256 // This is the "Try again..." case. |
257 TranslateManager* manager = | 257 TranslateManager* manager = |
258 TranslateTabHelper::GetManagerFromWebContents(web_contents()); | 258 TranslateTabHelper::GetManagerFromWebContents(GetWebContents()); |
259 DCHECK(manager); | 259 DCHECK(manager); |
260 manager->TranslatePage( | 260 manager->TranslatePage( |
261 original_language_code(), target_language_code(), false); | 261 original_language_code(), target_language_code(), false); |
262 } | 262 } |
263 | 263 |
264 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { | 264 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { |
265 return !GetMessageInfoBarButtonText().empty(); | 265 return !GetMessageInfoBarButtonText().empty(); |
266 } | 266 } |
267 | 267 |
268 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateShortcut() { | 268 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateShortcut() { |
269 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); | 269 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); |
270 return !web_contents()->GetBrowserContext()->IsOffTheRecord() && | 270 return !GetWebContents()->GetBrowserContext()->IsOffTheRecord() && |
271 (prefs_->GetTranslationDeniedCount(original_language_code()) >= | 271 (prefs_->GetTranslationDeniedCount(original_language_code()) >= |
272 kNeverTranslateMinCount); | 272 kNeverTranslateMinCount); |
273 } | 273 } |
274 | 274 |
275 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateShortcut() { | 275 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateShortcut() { |
276 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); | 276 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); |
277 return !web_contents()->GetBrowserContext()->IsOffTheRecord() && | 277 return !GetWebContents()->GetBrowserContext()->IsOffTheRecord() && |
278 (prefs_->GetTranslationAcceptedCount(original_language_code()) >= | 278 (prefs_->GetTranslationAcceptedCount(original_language_code()) >= |
279 kAlwaysTranslateMinCount); | 279 kAlwaysTranslateMinCount); |
280 } | 280 } |
281 | 281 |
| 282 content::WebContents* TranslateInfoBarDelegate::GetWebContents() { |
| 283 return InfoBarService::WebContentsFromInfoBar(infobar()); |
| 284 } |
| 285 |
282 // static | 286 // static |
283 base::string16 TranslateInfoBarDelegate::GetLanguageDisplayableName( | 287 base::string16 TranslateInfoBarDelegate::GetLanguageDisplayableName( |
284 const std::string& language_code) { | 288 const std::string& language_code) { |
285 return l10n_util::GetDisplayNameForLocale( | 289 return l10n_util::GetDisplayNameForLocale( |
286 language_code, g_browser_process->GetApplicationLocale(), true); | 290 language_code, g_browser_process->GetApplicationLocale(), true); |
287 } | 291 } |
288 | 292 |
289 // static | 293 // static |
290 void TranslateInfoBarDelegate::GetAfterTranslateStrings( | 294 void TranslateInfoBarDelegate::GetAfterTranslateStrings( |
291 std::vector<base::string16>* strings, | 295 std::vector<base::string16>* strings, |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 if (!details.is_navigation_to_different_page && !details.is_main_frame) | 375 if (!details.is_navigation_to_different_page && !details.is_main_frame) |
372 return false; | 376 return false; |
373 | 377 |
374 return InfoBarDelegate::ShouldExpireInternal(details); | 378 return InfoBarDelegate::ShouldExpireInternal(details); |
375 } | 379 } |
376 | 380 |
377 TranslateInfoBarDelegate* | 381 TranslateInfoBarDelegate* |
378 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { | 382 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { |
379 return this; | 383 return this; |
380 } | 384 } |
OLD | NEW |