Index: chrome/browser/translate/translate_manager.h |
diff --git a/chrome/browser/translate/translate_manager.h b/chrome/browser/translate/translate_manager.h |
index 78b3a3f856f87843ffab32ed8c9970689a7e4af0..9cb5ab35bac87f9d8cd3780373e3d901adb5e1c8 100644 |
--- a/chrome/browser/translate/translate_manager.h |
+++ b/chrome/browser/translate/translate_manager.h |
@@ -14,6 +14,7 @@ |
#include "base/lazy_instance.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/observer_list.h" |
#include "base/prefs/pref_change_registrar.h" |
#include "base/time.h" |
#include "chrome/common/translate_errors.h" |
@@ -23,6 +24,7 @@ |
template <typename T> struct DefaultSingletonTraits; |
class GURL; |
+struct LanguageDetectionDetails; |
struct PageTranslatedDetails; |
class PrefService; |
struct ShortcutConfiguration; |
@@ -110,6 +112,18 @@ class TranslateManager : public content::NotificationObserver, |
// static const values shared with our browser tests. |
static const char kLanguageListCallbackName[]; |
static const char kTargetLanguagesKey[]; |
+ |
+ // The observer class for TranslateManager. |
+ class Observer { |
+ public: |
+ virtual void OnLanguageDetection( |
+ const LanguageDetectionDetails& details) = 0; |
+ }; |
+ |
+ // Adds/removes observer. |
+ void AddObserver(Observer* obs); |
+ void RemoveObserver(Observer* obs); |
+ |
protected: |
TranslateManager(); |
@@ -169,6 +183,9 @@ class TranslateManager : public content::NotificationObserver, |
// to translate it). |
void RequestTranslateScript(); |
+ // Notifies to the observers when a language is detected. |
+ void NotifyLanguageDetection(const LanguageDetectionDetails& details); |
+ |
// Returns the language to translate to. The language returned is the |
// first language found in the following list that is supported by the |
// translation service: |
@@ -217,6 +234,9 @@ class TranslateManager : public content::NotificationObserver, |
// The languages supported by the translation server. |
static base::LazyInstance<std::set<std::string> > supported_languages_; |
+ // List of registered observers. |
+ ObserverList<Observer> observer_list_; |
+ |
DISALLOW_COPY_AND_ASSIGN(TranslateManager); |
}; |