OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 #include "chrome/renderer/translate_helper.h" | 5 #include "chrome/renderer/translate_helper.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 translation_pending_ = false; | 81 translation_pending_ = false; |
82 page_id_ = -1; | 82 page_id_ = -1; |
83 source_lang_.clear(); | 83 source_lang_.clear(); |
84 target_lang_.clear(); | 84 target_lang_.clear(); |
85 } | 85 } |
86 | 86 |
87 // static | 87 // static |
88 bool TranslateHelper::IsPageTranslatable(WebDocument* document) { | 88 bool TranslateHelper::IsPageTranslatable(WebDocument* document) { |
89 std::vector<WebElement> meta_elements; | 89 std::vector<WebElement> meta_elements; |
90 webkit_glue::GetMetaElementsWithAttribute(document, | 90 webkit_glue::GetMetaElementsWithAttribute(document, |
91 ASCIIToUTF16("name"), | 91 "name", |
92 ASCIIToUTF16("google"), | 92 "google", |
93 &meta_elements); | 93 &meta_elements); |
94 std::vector<WebElement>::const_iterator iter; | 94 std::vector<WebElement>::const_iterator iter; |
95 for (iter = meta_elements.begin(); iter != meta_elements.end(); ++iter) { | 95 for (iter = meta_elements.begin(); iter != meta_elements.end(); ++iter) { |
96 WebString attribute = iter->getAttribute("value"); | 96 WebString attribute = iter->getAttribute("value"); |
97 if (attribute.isNull()) // We support both 'value' and 'content'. | 97 if (attribute.isNull()) // We support both 'value' and 'content'. |
98 attribute = iter->getAttribute("content"); | 98 attribute = iter->getAttribute("content"); |
99 if (attribute.isNull()) | 99 if (attribute.isNull()) |
100 continue; | 100 continue; |
101 if (LowerCaseEqualsASCII(attribute, "notranslate")) | 101 if (LowerCaseEqualsASCII(attribute, "notranslate")) |
102 return false; | 102 return false; |
103 } | 103 } |
104 return true; | 104 return true; |
105 } | 105 } |
106 | 106 |
107 // static | 107 // static |
108 std::string TranslateHelper::GetPageLanguageFromMetaTag(WebDocument* document) { | 108 std::string TranslateHelper::GetPageLanguageFromMetaTag(WebDocument* document) { |
109 // The META language tag looks like: | 109 // The META language tag looks like: |
110 // <meta http-equiv="content-language" content="en"> | 110 // <meta http-equiv="content-language" content="en"> |
111 // It can contain more than one language: | 111 // It can contain more than one language: |
112 // <meta http-equiv="content-language" content="en, fr"> | 112 // <meta http-equiv="content-language" content="en, fr"> |
113 std::vector<WebElement> meta_elements; | 113 std::vector<WebElement> meta_elements; |
114 webkit_glue::GetMetaElementsWithAttribute(document, | 114 webkit_glue::GetMetaElementsWithAttribute(document, |
115 ASCIIToUTF16("http-equiv"), | 115 "http-equiv", |
116 ASCIIToUTF16("content-language"), | 116 "content-language", |
117 &meta_elements); | 117 &meta_elements); |
118 if (meta_elements.empty()) | 118 if (meta_elements.empty()) |
119 return std::string(); | 119 return std::string(); |
120 | 120 |
121 // We don't expect more than one such tag. If there are several, just use the | 121 // We don't expect more than one such tag. If there are several, just use the |
122 // first one. | 122 // first one. |
123 WebString attribute = meta_elements[0].getAttribute("content"); | 123 WebString attribute = meta_elements[0].getAttribute("content"); |
124 if (attribute.isEmpty()) | 124 if (attribute.isEmpty()) |
125 return std::string(); | 125 return std::string(); |
126 | 126 |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 WebView* web_view = render_view()->GetWebView(); | 443 WebView* web_view = render_view()->GetWebView(); |
444 if (!web_view) { | 444 if (!web_view) { |
445 // When the WebView is going away, the render view should have called | 445 // When the WebView is going away, the render view should have called |
446 // CancelPendingTranslation() which should have stopped any pending work, so | 446 // CancelPendingTranslation() which should have stopped any pending work, so |
447 // that case should not happen. | 447 // that case should not happen. |
448 NOTREACHED(); | 448 NOTREACHED(); |
449 return NULL; | 449 return NULL; |
450 } | 450 } |
451 return web_view->mainFrame(); | 451 return web_view->mainFrame(); |
452 } | 452 } |
OLD | NEW |