| 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_infobar_delegate.h" | 5 #include "components/translate/core/browser/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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 DCHECK(step == translate::TRANSLATE_STEP_TRANSLATING || | 71 DCHECK(step == translate::TRANSLATE_STEP_TRANSLATING || |
| 72 step == translate::TRANSLATE_STEP_AFTER_TRANSLATE); | 72 step == translate::TRANSLATE_STEP_AFTER_TRANSLATE); |
| 73 DCHECK_EQ(translate::kUnknownLanguageCode, original_language); | 73 DCHECK_EQ(translate::kUnknownLanguageCode, original_language); |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 | 76 |
| 77 // Do not create the after translate infobar if we are auto translating. | 77 // Do not create the after translate infobar if we are auto translating. |
| 78 TranslateClient* translate_client = translate_manager->translate_client(); | 78 TranslateClient* translate_client = translate_manager->translate_client(); |
| 79 if (((step == translate::TRANSLATE_STEP_AFTER_TRANSLATE) || | 79 if (((step == translate::TRANSLATE_STEP_AFTER_TRANSLATE) || |
| 80 (step == translate::TRANSLATE_STEP_TRANSLATING)) && | 80 (step == translate::TRANSLATE_STEP_TRANSLATING)) && |
| 81 translate_client->GetTranslateDriver()->GetLanguageState() | 81 translate_manager->GetLanguageState().InTranslateNavigation()) { |
| 82 .InTranslateNavigation()) { | |
| 83 return; | 82 return; |
| 84 } | 83 } |
| 85 | 84 |
| 86 // Find any existing translate infobar delegate. | 85 // Find any existing translate infobar delegate. |
| 87 infobars::InfoBar* old_infobar = NULL; | 86 infobars::InfoBar* old_infobar = NULL; |
| 88 TranslateInfoBarDelegate* old_delegate = NULL; | 87 TranslateInfoBarDelegate* old_delegate = NULL; |
| 89 for (size_t i = 0; i < infobar_manager->infobar_count(); ++i) { | 88 for (size_t i = 0; i < infobar_manager->infobar_count(); ++i) { |
| 90 old_infobar = infobar_manager->infobar_at(i); | 89 old_infobar = infobar_manager->infobar_at(i); |
| 91 old_delegate = old_infobar->delegate()->AsTranslateInfoBarDelegate(); | 90 old_delegate = old_infobar->delegate()->AsTranslateInfoBarDelegate(); |
| 92 if (old_delegate) { | 91 if (old_delegate) { |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 translate::TranslateStep step, | 314 translate::TranslateStep step, |
| 316 TranslateInfoBarDelegate* old_delegate, | 315 TranslateInfoBarDelegate* old_delegate, |
| 317 const std::string& original_language, | 316 const std::string& original_language, |
| 318 const std::string& target_language, | 317 const std::string& target_language, |
| 319 TranslateErrors::Type error_type, | 318 TranslateErrors::Type error_type, |
| 320 bool triggered_from_menu) | 319 bool triggered_from_menu) |
| 321 : infobars::InfoBarDelegate(), | 320 : infobars::InfoBarDelegate(), |
| 322 is_off_the_record_(is_off_the_record), | 321 is_off_the_record_(is_off_the_record), |
| 323 step_(step), | 322 step_(step), |
| 324 background_animation_(NONE), | 323 background_animation_(NONE), |
| 325 ui_delegate_(translate_manager->translate_client(), | 324 ui_delegate_(translate_manager, original_language, target_language), |
| 326 translate_manager.get(), | |
| 327 original_language, | |
| 328 target_language), | |
| 329 translate_manager_(translate_manager), | 325 translate_manager_(translate_manager), |
| 330 error_type_(error_type), | 326 error_type_(error_type), |
| 331 prefs_(translate_manager->translate_client()->GetTranslatePrefs()), | 327 prefs_(translate_manager->translate_client()->GetTranslatePrefs()), |
| 332 triggered_from_menu_(triggered_from_menu) { | 328 triggered_from_menu_(triggered_from_menu) { |
| 333 DCHECK_NE((step_ == translate::TRANSLATE_STEP_TRANSLATE_ERROR), | 329 DCHECK_NE((step_ == translate::TRANSLATE_STEP_TRANSLATE_ERROR), |
| 334 (error_type_ == TranslateErrors::NONE)); | 330 (error_type_ == TranslateErrors::NONE)); |
| 335 DCHECK(translate_manager_); | 331 DCHECK(translate_manager_); |
| 336 | 332 |
| 337 if (old_delegate && (old_delegate->is_error() != is_error())) | 333 if (old_delegate && (old_delegate->is_error() != is_error())) |
| 338 background_animation_ = is_error() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL; | 334 background_animation_ = is_error() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 363 if (!details.is_navigation_to_different_page && !details.is_main_frame) | 359 if (!details.is_navigation_to_different_page && !details.is_main_frame) |
| 364 return false; | 360 return false; |
| 365 | 361 |
| 366 return infobars::InfoBarDelegate::ShouldExpireInternal(details); | 362 return infobars::InfoBarDelegate::ShouldExpireInternal(details); |
| 367 } | 363 } |
| 368 | 364 |
| 369 TranslateInfoBarDelegate* | 365 TranslateInfoBarDelegate* |
| 370 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { | 366 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { |
| 371 return this; | 367 return this; |
| 372 } | 368 } |
| OLD | NEW |