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/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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |