| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_RENDERER_TRANSLATE_HELPER_H_ | 5 #ifndef CHROME_RENDERER_TRANSLATE_HELPER_H_ |
| 6 #define CHROME_RENDERER_TRANSLATE_HELPER_H_ | 6 #define CHROME_RENDERER_TRANSLATE_HELPER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/gtest_prod_util.h" |
| 10 #include "base/memory/weak_ptr.h" | 11 #include "base/memory/weak_ptr.h" |
| 11 #include "chrome/common/translate_errors.h" | 12 #include "chrome/common/translate_errors.h" |
| 12 #include "content/public/renderer/render_view_observer.h" | 13 #include "content/public/renderer/render_view_observer.h" |
| 13 | 14 |
| 14 namespace WebKit { | 15 namespace WebKit { |
| 15 class WebDocument; | 16 class WebDocument; |
| 16 class WebFrame; | 17 class WebFrame; |
| 17 } | 18 } |
| 18 | 19 |
| 19 // This class deals with page translation. | 20 // This class deals with page translation. |
| 20 // There is one TranslateHelper per RenderView. | 21 // There is one TranslateHelper per RenderView. |
| 21 | 22 |
| 22 class TranslateHelper : public content::RenderViewObserver { | 23 class TranslateHelper : public content::RenderViewObserver { |
| 23 public: | 24 public: |
| 24 explicit TranslateHelper(content::RenderView* render_view); | 25 explicit TranslateHelper(content::RenderView* render_view); |
| 25 virtual ~TranslateHelper(); | 26 virtual ~TranslateHelper(); |
| 26 | 27 |
| 27 // Informs us that the page's text has been extracted. | 28 // Informs us that the page's text has been extracted. |
| 28 void PageCaptured(const string16& contents); | 29 void PageCaptured(const string16& contents); |
| 29 | 30 |
| 30 protected: | 31 protected: |
| 31 // Convert language code to the one used in server supporting list. | |
| 32 static void ConvertLanguageCodeSynonym(std::string* code); | |
| 33 | |
| 34 // The following methods are protected so they can be overridden in | 32 // The following methods are protected so they can be overridden in |
| 35 // unit-tests. | 33 // unit-tests. |
| 36 void OnTranslatePage(int page_id, | 34 void OnTranslatePage(int page_id, |
| 37 const std::string& translate_script, | 35 const std::string& translate_script, |
| 38 const std::string& source_lang, | 36 const std::string& source_lang, |
| 39 const std::string& target_lang); | 37 const std::string& target_lang); |
| 40 void OnRevertTranslation(int page_id); | 38 void OnRevertTranslation(int page_id); |
| 41 | 39 |
| 42 // Returns true if the translate library is available, meaning the JavaScript | 40 // Returns true if the translate library is available, meaning the JavaScript |
| 43 // has already been injected in that page. | 41 // has already been injected in that page. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 61 // Asks the Translate element in the page what the language of the page is. | 59 // Asks the Translate element in the page what the language of the page is. |
| 62 // Can only be called if a translation has happened and was successful. | 60 // Can only be called if a translation has happened and was successful. |
| 63 // Returns the language code on success, an empty string on failure. | 61 // Returns the language code on success, an empty string on failure. |
| 64 virtual std::string GetOriginalPageLanguage(); | 62 virtual std::string GetOriginalPageLanguage(); |
| 65 | 63 |
| 66 // Used in unit-tests. Makes the various tasks be posted immediately so that | 64 // Used in unit-tests. Makes the various tasks be posted immediately so that |
| 67 // the tests don't have to wait before checking states. | 65 // the tests don't have to wait before checking states. |
| 68 virtual bool DontDelayTasks(); | 66 virtual bool DontDelayTasks(); |
| 69 | 67 |
| 70 private: | 68 private: |
| 69 FRIEND_TEST_ALL_PREFIXES(TranslateHelperTest, LanguageCodeSynonyms); |
| 70 |
| 71 // Convert language code to the one used in server supporting list. |
| 72 static void ConvertLanguageCodeSynonym(std::string* code); |
| 73 |
| 71 // Returns whether the page associated with |document| is a candidate for | 74 // Returns whether the page associated with |document| is a candidate for |
| 72 // translation. Some pages can explictly specify (via a meta-tag) that they | 75 // translation. Some pages can explictly specify (via a meta-tag) that they |
| 73 // should not be translated. | 76 // should not be translated. |
| 74 static bool IsPageTranslatable(WebKit::WebDocument* document); | 77 static bool IsPageTranslatable(WebKit::WebDocument* document); |
| 75 | 78 |
| 76 #if defined(ENABLE_LANGUAGE_DETECTION) | 79 #if defined(ENABLE_LANGUAGE_DETECTION) |
| 77 // Returns the ISO 639_1 language code of the specified |text|, or 'unknown' | 80 // Returns the ISO 639_1 language code of the specified |text|, or 'unknown' |
| 78 // if it failed. | 81 // if it failed. |
| 79 static std::string DetermineTextLanguage(const string16& text); | 82 static std::string DetermineTextLanguage(const string16& text); |
| 80 #endif | 83 #endif |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 std::string source_lang_; | 130 std::string source_lang_; |
| 128 std::string target_lang_; | 131 std::string target_lang_; |
| 129 | 132 |
| 130 // Method factory used to make calls to TranslatePageImpl. | 133 // Method factory used to make calls to TranslatePageImpl. |
| 131 base::WeakPtrFactory<TranslateHelper> weak_method_factory_; | 134 base::WeakPtrFactory<TranslateHelper> weak_method_factory_; |
| 132 | 135 |
| 133 DISALLOW_COPY_AND_ASSIGN(TranslateHelper); | 136 DISALLOW_COPY_AND_ASSIGN(TranslateHelper); |
| 134 }; | 137 }; |
| 135 | 138 |
| 136 #endif // CHROME_RENDERER_TRANSLATE_HELPER_H_ | 139 #endif // CHROME_RENDERER_TRANSLATE_HELPER_H_ |
| OLD | NEW |