Index: chrome/browser/translate/translate_infobar_delegate.h |
diff --git a/chrome/browser/translate/translate_infobar_delegate.h b/chrome/browser/translate/translate_infobar_delegate.h |
index a3e5fca61e568ebd73b33482bf5f74b341b8a741..1e99be73244eb27d4e352c8aa8dddb957f8892aa 100644 |
--- a/chrome/browser/translate/translate_infobar_delegate.h |
+++ b/chrome/browser/translate/translate_infobar_delegate.h |
@@ -11,6 +11,7 @@ |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "components/infobars/core/infobar_delegate.h" |
#include "components/translate/core/browser/translate_prefs.h" |
#include "components/translate/core/browser/translate_step.h" |
@@ -18,7 +19,10 @@ |
#include "components/translate/core/common/translate_constants.h" |
#include "components/translate/core/common/translate_errors.h" |
+class InfoBarService; |
class PrefService; |
+class TranslateClient; |
+class TranslateManager; |
namespace content { |
class WebContents; |
@@ -50,7 +54,9 @@ class TranslateInfoBarDelegate : public infobars::InfoBarDelegate { |
// infobar already present there. Otherwise, the infobar will only be added |
// if there is no other translate infobar already present. |
static void Create(bool replace_existing_infobar, |
- content::WebContents* web_contents, |
+ const base::WeakPtr<TranslateManager>& translate_manager, |
+ InfoBarService* infobar_service, |
+ bool is_off_the_record, |
translate::TranslateStep step, |
const std::string& original_language, |
const std::string& target_language, |
@@ -73,6 +79,8 @@ class TranslateInfoBarDelegate : public infobars::InfoBarDelegate { |
translate::TranslateStep translate_step() const { return step_; } |
+ bool is_off_the_record() { return is_off_the_record_; } |
+ |
TranslateErrors::Type error_type() const { return error_type_; } |
size_t original_language_index() const { |
@@ -168,14 +176,16 @@ class TranslateInfoBarDelegate : public infobars::InfoBarDelegate { |
bool autodetermined_source_language); |
protected: |
- TranslateInfoBarDelegate(content::WebContents* web_contents, |
- translate::TranslateStep step, |
- TranslateInfoBarDelegate* old_delegate, |
- const std::string& original_language, |
- const std::string& target_language, |
- TranslateErrors::Type error_type, |
- PrefService* prefs, |
- bool triggered_from_menu); |
+ TranslateInfoBarDelegate( |
+ const base::WeakPtr<TranslateManager>& translate_manager, |
+ bool is_off_the_record, |
+ translate::TranslateStep step, |
+ TranslateInfoBarDelegate* old_delegate, |
+ const std::string& original_language, |
+ const std::string& target_language, |
+ TranslateErrors::Type error_type, |
+ PrefService* prefs, |
+ bool triggered_from_menu); |
private: |
friend class TranslationInfoBarTest; |
@@ -185,6 +195,9 @@ class TranslateInfoBarDelegate : public infobars::InfoBarDelegate { |
static scoped_ptr<infobars::InfoBar> CreateInfoBar( |
scoped_ptr<TranslateInfoBarDelegate> delegate); |
+ // May return NULL if the client has been destroyed. |
+ TranslateClient* GetTranslateClient(); |
+ |
// InfoBarDelegate: |
virtual void InfoBarDismissed() OVERRIDE; |
virtual int GetIconID() const OVERRIDE; |
@@ -192,6 +205,7 @@ class TranslateInfoBarDelegate : public infobars::InfoBarDelegate { |
virtual bool ShouldExpire(const NavigationDetails& details) const OVERRIDE; |
virtual TranslateInfoBarDelegate* AsTranslateInfoBarDelegate() OVERRIDE; |
+ bool is_off_the_record_; |
translate::TranslateStep step_; |
// The type of fading animation if any that should be used when showing this |
@@ -199,6 +213,7 @@ class TranslateInfoBarDelegate : public infobars::InfoBarDelegate { |
BackgroundAnimationType background_animation_; |
TranslateUIDelegate ui_delegate_; |
+ base::WeakPtr<TranslateManager> translate_manager_; |
// The error that occurred when trying to translate (NONE if no error). |
TranslateErrors::Type error_type_; |