Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: chrome/browser/tab_contents/render_view_context_menu.cc

Issue 15317007: Translate: split supporting language list handling to TranslateLanguageList (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for review Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/browser/tab_contents/render_view_context_menu.h" 5 #include "chrome/browser/tab_contents/render_view_context_menu.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "chrome/browser/search/instant_extended_context_menu_observer.h" 42 #include "chrome/browser/search/instant_extended_context_menu_observer.h"
43 #include "chrome/browser/search_engines/template_url.h" 43 #include "chrome/browser/search_engines/template_url.h"
44 #include "chrome/browser/search_engines/template_url_service.h" 44 #include "chrome/browser/search_engines/template_url_service.h"
45 #include "chrome/browser/search_engines/template_url_service_factory.h" 45 #include "chrome/browser/search_engines/template_url_service_factory.h"
46 #include "chrome/browser/speech/chrome_speech_recognition_preferences.h" 46 #include "chrome/browser/speech/chrome_speech_recognition_preferences.h"
47 #include "chrome/browser/spellchecker/spellcheck_host_metrics.h" 47 #include "chrome/browser/spellchecker/spellcheck_host_metrics.h"
48 #include "chrome/browser/spellchecker/spellcheck_service.h" 48 #include "chrome/browser/spellchecker/spellcheck_service.h"
49 #include "chrome/browser/tab_contents/retargeting_details.h" 49 #include "chrome/browser/tab_contents/retargeting_details.h"
50 #include "chrome/browser/tab_contents/spellchecker_submenu_observer.h" 50 #include "chrome/browser/tab_contents/spellchecker_submenu_observer.h"
51 #include "chrome/browser/tab_contents/spelling_menu_observer.h" 51 #include "chrome/browser/tab_contents/spelling_menu_observer.h"
52 #include "chrome/browser/translate/translate_language_list.h"
52 #include "chrome/browser/translate/translate_manager.h" 53 #include "chrome/browser/translate/translate_manager.h"
53 #include "chrome/browser/translate/translate_prefs.h" 54 #include "chrome/browser/translate/translate_prefs.h"
54 #include "chrome/browser/translate/translate_tab_helper.h" 55 #include "chrome/browser/translate/translate_tab_helper.h"
55 #include "chrome/browser/ui/browser.h" 56 #include "chrome/browser/ui/browser.h"
56 #include "chrome/browser/ui/browser_commands.h" 57 #include "chrome/browser/ui/browser_commands.h"
57 #include "chrome/browser/ui/browser_finder.h" 58 #include "chrome/browser/ui/browser_finder.h"
58 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" 59 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h"
59 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" 60 #include "chrome/browser/ui/tab_contents/core_tab_helper.h"
60 #include "chrome/common/chrome_constants.h" 61 #include "chrome/common/chrome_constants.h"
61 #include "chrome/common/chrome_notification_types.h" 62 #include "chrome/common/chrome_notification_types.h"
(...skipping 855 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); 918 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK);
918 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); 919 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD);
919 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); 920 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD);
920 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 921 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
921 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, 922 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE,
922 IDS_CONTENT_CONTEXT_SAVEPAGEAS); 923 IDS_CONTENT_CONTEXT_SAVEPAGEAS);
923 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); 924 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT);
924 925
925 if (ShouldShowTranslateItem(params_.page_url)) { 926 if (ShouldShowTranslateItem(params_.page_url)) {
926 std::string locale = g_browser_process->GetApplicationLocale(); 927 std::string locale = g_browser_process->GetApplicationLocale();
927 locale = TranslateManager::GetLanguageCode(locale); 928 locale = TranslateLanguageList::GetLanguageCode(locale);
928 string16 language = l10n_util::GetDisplayNameForLocale(locale, locale, 929 string16 language = l10n_util::GetDisplayNameForLocale(locale, locale,
929 true); 930 true);
930 menu_model_.AddItem( 931 menu_model_.AddItem(
931 IDC_CONTENT_CONTEXT_TRANSLATE, 932 IDC_CONTENT_CONTEXT_TRANSLATE,
932 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); 933 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language));
933 } 934 }
934 935
935 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE, 936 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE,
936 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE); 937 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE);
937 // Only add View Page Info if there's a browser. This is a temporary thing 938 // Only add View Page Info if there's a browser. This is a temporary thing
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
1202 return true; 1203 return true;
1203 1204
1204 case IDC_CONTENT_CONTEXT_TRANSLATE: { 1205 case IDC_CONTENT_CONTEXT_TRANSLATE: {
1205 TranslateTabHelper* translate_tab_helper = 1206 TranslateTabHelper* translate_tab_helper =
1206 TranslateTabHelper::FromWebContents(source_web_contents_); 1207 TranslateTabHelper::FromWebContents(source_web_contents_);
1207 if (!translate_tab_helper) 1208 if (!translate_tab_helper)
1208 return false; 1209 return false;
1209 std::string original_lang = 1210 std::string original_lang =
1210 translate_tab_helper->language_state().original_language(); 1211 translate_tab_helper->language_state().original_language();
1211 std::string target_lang = g_browser_process->GetApplicationLocale(); 1212 std::string target_lang = g_browser_process->GetApplicationLocale();
1212 target_lang = TranslateManager::GetLanguageCode(target_lang); 1213 target_lang = TranslateLanguageList::GetLanguageCode(target_lang);
1213 // Note that we intentionally enable the menu even if the original and 1214 // Note that we intentionally enable the menu even if the original and
1214 // target languages are identical. This is to give a way to user to 1215 // target languages are identical. This is to give a way to user to
1215 // translate a page that might contains text fragments in a different 1216 // translate a page that might contains text fragments in a different
1216 // language. 1217 // language.
1217 return !!(params_.edit_flags & WebContextMenuData::CanTranslate) && 1218 return !!(params_.edit_flags & WebContextMenuData::CanTranslate) &&
1218 translate_tab_helper->language_state().page_translatable() && 1219 translate_tab_helper->language_state().page_translatable() &&
1219 !original_lang.empty() && // Did we receive the page language yet? 1220 !original_lang.empty() && // Did we receive the page language yet?
1220 // Only allow translating languages we explitly support and the 1221 // Only allow translating languages we explitly support and the
1221 // unknown language (in which case the page language is detected on 1222 // unknown language (in which case the page language is detected on
1222 // the server side). 1223 // the server side).
1223 (original_lang == chrome::kUnknownLanguageCode || 1224 (original_lang == chrome::kUnknownLanguageCode ||
1224 TranslateManager::IsSupportedLanguage(original_lang)) && 1225 TranslateLanguageList::IsSupportedLanguage(original_lang)) &&
1225 !translate_tab_helper->language_state().IsPageTranslated() && 1226 !translate_tab_helper->language_state().IsPageTranslated() &&
1226 !source_web_contents_->GetInterstitialPage() && 1227 !source_web_contents_->GetInterstitialPage() &&
1227 TranslateManager::IsTranslatableURL(params_.page_url) && 1228 TranslateManager::IsTranslatableURL(params_.page_url) &&
1228 // There are some application locales which can't be used as a 1229 // There are some application locales which can't be used as a
1229 // target language for translation. 1230 // target language for translation.
1230 TranslateManager::IsSupportedLanguage(target_lang); 1231 TranslateLanguageList::IsSupportedLanguage(target_lang);
1231 } 1232 }
1232 1233
1233 case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: 1234 case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB:
1234 case IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW: 1235 case IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW:
1235 return params_.link_url.is_valid(); 1236 return params_.link_url.is_valid();
1236 1237
1237 case IDC_CONTENT_CONTEXT_COPYLINKLOCATION: 1238 case IDC_CONTENT_CONTEXT_COPYLINKLOCATION:
1238 return params_.unfiltered_link_url.is_valid(); 1239 return params_.unfiltered_link_url.is_valid();
1239 1240
1240 case IDC_CONTENT_CONTEXT_SAVELINKAS: { 1241 case IDC_CONTENT_CONTEXT_SAVELINKAS: {
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
1773 TranslateTabHelper* translate_tab_helper = 1774 TranslateTabHelper* translate_tab_helper =
1774 TranslateTabHelper::FromWebContents(source_web_contents_); 1775 TranslateTabHelper::FromWebContents(source_web_contents_);
1775 if (!translate_tab_helper || 1776 if (!translate_tab_helper ||
1776 translate_tab_helper->language_state().IsPageTranslated() || 1777 translate_tab_helper->language_state().IsPageTranslated() ||
1777 translate_tab_helper->language_state().translation_pending()) { 1778 translate_tab_helper->language_state().translation_pending()) {
1778 return; 1779 return;
1779 } 1780 }
1780 std::string original_lang = 1781 std::string original_lang =
1781 translate_tab_helper->language_state().original_language(); 1782 translate_tab_helper->language_state().original_language();
1782 std::string target_lang = g_browser_process->GetApplicationLocale(); 1783 std::string target_lang = g_browser_process->GetApplicationLocale();
1783 target_lang = TranslateManager::GetLanguageCode(target_lang); 1784 target_lang = TranslateLanguageList::GetLanguageCode(target_lang);
1784 // Since the user decided to translate for that language and site, clears 1785 // Since the user decided to translate for that language and site, clears
1785 // any preferences for not translating them. 1786 // any preferences for not translating them.
1786 TranslatePrefs prefs(profile_->GetPrefs()); 1787 TranslatePrefs prefs(profile_->GetPrefs());
1787 prefs.RemoveLanguageFromBlacklist(original_lang); 1788 prefs.RemoveLanguageFromBlacklist(original_lang);
1788 prefs.RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); 1789 prefs.RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets());
1789 TranslateManager::GetInstance()->TranslatePage( 1790 TranslateManager::GetInstance()->TranslatePage(
1790 source_web_contents_, original_lang, target_lang); 1791 source_web_contents_, original_lang, target_lang);
1791 break; 1792 break;
1792 } 1793 }
1793 1794
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
2054 source_web_contents_->GetRenderViewHost()-> 2055 source_web_contents_->GetRenderViewHost()->
2055 ExecuteMediaPlayerActionAtLocation(location, action); 2056 ExecuteMediaPlayerActionAtLocation(location, action);
2056 } 2057 }
2057 2058
2058 void RenderViewContextMenu::PluginActionAt( 2059 void RenderViewContextMenu::PluginActionAt(
2059 const gfx::Point& location, 2060 const gfx::Point& location,
2060 const WebPluginAction& action) { 2061 const WebPluginAction& action) {
2061 source_web_contents_->GetRenderViewHost()-> 2062 source_web_contents_->GetRenderViewHost()->
2062 ExecutePluginActionAtLocation(location, action); 2063 ExecutePluginActionAtLocation(location, action);
2063 } 2064 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698