| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #ifndef CHROME_BROWSER_TRANSLATE_TRANSLATE_MANAGER_H_ | 5 #ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_MANAGER_H_ |
| 6 #define CHROME_BROWSER_TRANSLATE_TRANSLATE_MANAGER_H_ | 6 #define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_MANAGER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/callback_list.h" | 12 #include "base/callback_list.h" |
| 13 #include "base/gtest_prod_util.h" | 13 #include "base/gtest_prod_util.h" |
| 14 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
| 15 #include "base/memory/weak_ptr.h" | 15 #include "base/memory/weak_ptr.h" |
| 16 #include "components/translate/core/common/translate_errors.h" | 16 #include "components/translate/core/common/translate_errors.h" |
| 17 | 17 |
| 18 class GURL; | 18 class GURL; |
| 19 class PrefService; | 19 class PrefService; |
| 20 class TranslateClient; | 20 class TranslateClient; |
| 21 class TranslateDriver; | 21 class TranslateDriver; |
| 22 class TranslatePrefs; |
| 22 struct TranslateErrorDetails; | 23 struct TranslateErrorDetails; |
| 23 class TranslateTabHelper; | |
| 24 | 24 |
| 25 // The TranslateManager class is responsible for showing an info-bar when a page | 25 // The TranslateManager class is responsible for showing an info-bar when a page |
| 26 // in a language different than the user language is loaded. It triggers the | 26 // in a language different than the user language is loaded. It triggers the |
| 27 // page translation the user requests. | 27 // page translation the user requests. |
| 28 // TranslateManager expects its associated TranslateTabHelper to always have a | |
| 29 // valid WebContents (i.e. the WebContents is never destroyed within the | |
| 30 // lifetime of TranslateManager). | |
| 31 | 28 |
| 32 class TranslateManager { | 29 class TranslateManager { |
| 33 public: | 30 public: |
| 34 // TranslateTabHelper is expected to outlive the TranslateManager. | 31 // |translate_client| is expected to outlive the TranslateManager. |
| 35 // |accept_language_pref_name| is the path for the preference for the | 32 // |accept_language_pref_name| is the path for the preference for the |
| 36 // accept-languages. | 33 // accept-languages. |
| 37 TranslateManager(TranslateTabHelper* helper, | 34 TranslateManager(TranslateClient* translate_client, |
| 38 const std::string& accept_language_pref_name); | 35 const std::string& accept_language_pref_name); |
| 39 virtual ~TranslateManager(); | 36 virtual ~TranslateManager(); |
| 40 | 37 |
| 41 // Returns the language to translate to. The language returned is the | 38 // Returns the language to translate to. The language returned is the |
| 42 // first language found in the following list that is supported by the | 39 // first language found in the following list that is supported by the |
| 43 // translation service: | 40 // translation service: |
| 44 // the UI language | 41 // the UI language |
| 45 // the accept-language list | 42 // the accept-language list |
| 46 // If no language is found then an empty string is returned. | 43 // If no language is found then an empty string is returned. |
| 47 static std::string GetTargetLanguage( | 44 static std::string GetTargetLanguage( |
| 48 const std::vector<std::string>& accept_languages_list); | 45 const std::vector<std::string>& accept_languages_list); |
| 49 | 46 |
| 50 // Returns the language to automatically translate to. |original_language| is | 47 // Returns the language to automatically translate to. |original_language| is |
| 51 // the webpage's original language. | 48 // the webpage's original language. |
| 52 static std::string GetAutoTargetLanguage(const std::string& original_language, | 49 static std::string GetAutoTargetLanguage(const std::string& original_language, |
| 53 PrefService* prefs); | 50 TranslatePrefs* translate_prefs); |
| 54 | 51 |
| 55 // Translates the page contents from |source_lang| to |target_lang|. | 52 // Translates the page contents from |source_lang| to |target_lang|. |
| 56 // The actual translation might be performed asynchronously if the translate | 53 // The actual translation might be performed asynchronously if the translate |
| 57 // script is not yet available. | 54 // script is not yet available. |
| 58 void TranslatePage(const std::string& source_lang, | 55 void TranslatePage(const std::string& source_lang, |
| 59 const std::string& target_lang, | 56 const std::string& target_lang, |
| 60 bool triggered_from_menu); | 57 bool triggered_from_menu); |
| 61 | 58 |
| 62 // Starts the translation process for a page in the |page_lang| language. | 59 // Starts the translation process for a page in the |page_lang| language. |
| 63 void InitiateTranslation(const std::string& page_lang); | 60 void InitiateTranslation(const std::string& page_lang); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // Initiates the translation. | 92 // Initiates the translation. |
| 96 void OnTranslateScriptFetchComplete(int page_id, | 93 void OnTranslateScriptFetchComplete(int page_id, |
| 97 const std::string& source_lang, | 94 const std::string& source_lang, |
| 98 const std::string& target_lang, | 95 const std::string& target_lang, |
| 99 bool success, | 96 bool success, |
| 100 const std::string& data); | 97 const std::string& data); |
| 101 | 98 |
| 102 // Preference name for the Accept-Languages HTTP header. | 99 // Preference name for the Accept-Languages HTTP header. |
| 103 std::string accept_languages_pref_name_; | 100 std::string accept_languages_pref_name_; |
| 104 | 101 |
| 105 // TODO(droger): Remove all uses of |translate_tab_helper_|, use | 102 TranslateClient* translate_client_; // Weak. |
| 106 // TranslateClient and TranslateDriver instead. | |
| 107 TranslateTabHelper* translate_tab_helper_; // Weak. | |
| 108 TranslateClient* translate_client_; // Weak. | |
| 109 TranslateDriver* translate_driver_; // Weak. | 103 TranslateDriver* translate_driver_; // Weak. |
| 110 | 104 |
| 111 base::WeakPtrFactory<TranslateManager> weak_method_factory_; | 105 base::WeakPtrFactory<TranslateManager> weak_method_factory_; |
| 112 | 106 |
| 113 DISALLOW_COPY_AND_ASSIGN(TranslateManager); | 107 DISALLOW_COPY_AND_ASSIGN(TranslateManager); |
| 114 }; | 108 }; |
| 115 | 109 |
| 116 #endif // CHROME_BROWSER_TRANSLATE_TRANSLATE_MANAGER_H_ | 110 #endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_MANAGER_H_ |
| OLD | NEW |