Index: chrome/browser/translate/translate_infobar_delegate.cc |
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc |
index bafb6f14797c55169cca704d8c8a359865721c55..d7e3439697dc23b1bb65742849ba1f695ba9e032 100644 |
--- a/chrome/browser/translate/translate_infobar_delegate.cc |
+++ b/chrome/browser/translate/translate_infobar_delegate.cc |
@@ -11,6 +11,7 @@ |
#include "base/prefs/pref_service.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/infobars/infobar.h" |
+#include "chrome/browser/infobars/infobar_manager.h" |
#include "chrome/browser/infobars/infobar_service.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/translate/translate_manager.h" |
@@ -89,9 +90,10 @@ void TranslateInfoBarDelegate::Create(bool replace_existing_infobar, |
InfoBar* old_infobar = NULL; |
InfoBarService* infobar_service = |
InfoBarService::FromWebContents(web_contents); |
+ InfoBarManager& infobar_manager = infobar_service->infobar_manager(); |
TranslateInfoBarDelegate* old_delegate = NULL; |
- for (size_t i = 0; i < infobar_service->infobar_count(); ++i) { |
- old_infobar = infobar_service->infobar_at(i); |
+ for (size_t i = 0; i < infobar_manager.infobar_count(); ++i) { |
+ old_infobar = infobar_manager.infobar_at(i); |
old_delegate = old_infobar->delegate()->AsTranslateInfoBarDelegate(); |
if (old_delegate) { |
if (!replace_existing_infobar) |
@@ -134,7 +136,7 @@ void TranslateInfoBarDelegate::RevertTranslation() { |
void TranslateInfoBarDelegate::ReportLanguageDetectionError() { |
TranslateManager* manager = |
- TranslateTabHelper::GetManagerFromWebContents(web_contents()); |
+ TranslateTabHelper::GetManagerFromWebContents(web_contents_); |
if (!manager) |
return; |
manager->ReportLanguageDetectionError(); |
@@ -146,7 +148,7 @@ void TranslateInfoBarDelegate::TranslationDeclined() { |
bool TranslateInfoBarDelegate::IsTranslatableLanguageByPrefs() { |
Profile* profile = |
- Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
+ Profile::FromBrowserContext(web_contents_->GetBrowserContext()); |
Profile* original_profile = profile->GetOriginalProfile(); |
scoped_ptr<TranslatePrefs> translate_prefs( |
TranslateTabHelper::CreateTranslatePrefs(original_profile->GetPrefs())); |
@@ -256,7 +258,7 @@ void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { |
} |
// This is the "Try again..." case. |
TranslateManager* manager = |
- TranslateTabHelper::GetManagerFromWebContents(web_contents()); |
+ TranslateTabHelper::GetManagerFromWebContents(web_contents_); |
DCHECK(manager); |
manager->TranslatePage( |
original_language_code(), target_language_code(), false); |
@@ -268,15 +270,15 @@ bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { |
bool TranslateInfoBarDelegate::ShouldShowNeverTranslateShortcut() { |
DCHECK_EQ(TranslateTabHelper::BEFORE_TRANSLATE, step_); |
- return !web_contents()->GetBrowserContext()->IsOffTheRecord() && |
- (prefs_->GetTranslationDeniedCount(original_language_code()) >= |
+ return !web_contents_->GetBrowserContext()->IsOffTheRecord() && |
+ (prefs_->GetTranslationDeniedCount(original_language_code()) >= |
kNeverTranslateMinCount); |
} |
bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateShortcut() { |
DCHECK_EQ(TranslateTabHelper::BEFORE_TRANSLATE, step_); |
- return !web_contents()->GetBrowserContext()->IsOffTheRecord() && |
- (prefs_->GetTranslationAcceptedCount(original_language_code()) >= |
+ return !web_contents_->GetBrowserContext()->IsOffTheRecord() && |
+ (prefs_->GetTranslationAcceptedCount(original_language_code()) >= |
kAlwaysTranslateMinCount); |
} |
@@ -333,6 +335,7 @@ TranslateInfoBarDelegate::TranslateInfoBarDelegate( |
bool triggered_from_menu) |
: InfoBarDelegate(), |
step_(step), |
+ web_contents_(web_contents), |
background_animation_(NONE), |
ui_delegate_(web_contents, original_language, target_language), |
error_type_(error_type), |
@@ -366,10 +369,10 @@ InfoBarDelegate::Type TranslateInfoBarDelegate::GetInfoBarType() const { |
} |
bool TranslateInfoBarDelegate::ShouldExpire( |
- const content::LoadCommittedDetails& details) const { |
+ const NavigationDetails& details) const { |
// Note: we allow closing this infobar even if the main frame navigation |
// was programmatic and not initiated by the user - crbug.com/70261 . |
- if (!details.is_navigation_to_different_page() && !details.is_main_frame) |
+ if (!details.is_navigation_to_different_page && !details.is_main_frame) |
return false; |
return InfoBarDelegate::ShouldExpireInternal(details); |
@@ -379,3 +382,5 @@ TranslateInfoBarDelegate* |
TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { |
return this; |
} |
+ |
+void TranslateInfoBarDelegate::CleanUp() { web_contents_ = NULL; } |