OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/renderer_context_menu/render_view_context_menu.h" | 5 #include "chrome/browser/renderer_context_menu/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 904 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
915 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); | 915 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); |
916 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); | 916 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); |
917 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); | 917 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); |
918 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); | 918 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); |
919 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, | 919 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, |
920 IDS_CONTENT_CONTEXT_SAVEPAGEAS); | 920 IDS_CONTENT_CONTEXT_SAVEPAGEAS); |
921 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); | 921 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); |
922 | 922 |
923 if (TranslateService::IsTranslatableURL(params_.page_url)) { | 923 if (TranslateService::IsTranslatableURL(params_.page_url)) { |
924 std::string locale = g_browser_process->GetApplicationLocale(); | 924 std::string locale = g_browser_process->GetApplicationLocale(); |
925 locale = TranslateDownloadManager::GetLanguageCode(locale); | 925 locale = translate::TranslateDownloadManager::GetLanguageCode(locale); |
926 base::string16 language = | 926 base::string16 language = |
927 l10n_util::GetDisplayNameForLocale(locale, locale, true); | 927 l10n_util::GetDisplayNameForLocale(locale, locale, true); |
928 menu_model_.AddItem( | 928 menu_model_.AddItem( |
929 IDC_CONTENT_CONTEXT_TRANSLATE, | 929 IDC_CONTENT_CONTEXT_TRANSLATE, |
930 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); | 930 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); |
931 } | 931 } |
932 | 932 |
933 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE, | 933 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE, |
934 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE); | 934 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE); |
935 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWPAGEINFO, | 935 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWPAGEINFO, |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1174 return true; | 1174 return true; |
1175 | 1175 |
1176 case IDC_CONTENT_CONTEXT_TRANSLATE: { | 1176 case IDC_CONTENT_CONTEXT_TRANSLATE: { |
1177 ChromeTranslateClient* chrome_translate_client = | 1177 ChromeTranslateClient* chrome_translate_client = |
1178 ChromeTranslateClient::FromWebContents(source_web_contents_); | 1178 ChromeTranslateClient::FromWebContents(source_web_contents_); |
1179 if (!chrome_translate_client) | 1179 if (!chrome_translate_client) |
1180 return false; | 1180 return false; |
1181 std::string original_lang = | 1181 std::string original_lang = |
1182 chrome_translate_client->GetLanguageState().original_language(); | 1182 chrome_translate_client->GetLanguageState().original_language(); |
1183 std::string target_lang = g_browser_process->GetApplicationLocale(); | 1183 std::string target_lang = g_browser_process->GetApplicationLocale(); |
1184 target_lang = TranslateDownloadManager::GetLanguageCode(target_lang); | 1184 target_lang = |
| 1185 translate::TranslateDownloadManager::GetLanguageCode(target_lang); |
1185 // Note that we intentionally enable the menu even if the original and | 1186 // Note that we intentionally enable the menu even if the original and |
1186 // target languages are identical. This is to give a way to user to | 1187 // target languages are identical. This is to give a way to user to |
1187 // translate a page that might contains text fragments in a different | 1188 // translate a page that might contains text fragments in a different |
1188 // language. | 1189 // language. |
1189 return ((params_.edit_flags & WebContextMenuData::CanTranslate) != 0) && | 1190 return ((params_.edit_flags & WebContextMenuData::CanTranslate) != 0) && |
1190 !original_lang.empty() && // Did we receive the page language yet? | 1191 !original_lang.empty() && // Did we receive the page language yet? |
1191 !chrome_translate_client->GetLanguageState().IsPageTranslated() && | 1192 !chrome_translate_client->GetLanguageState().IsPageTranslated() && |
1192 !source_web_contents_->GetInterstitialPage() && | 1193 !source_web_contents_->GetInterstitialPage() && |
1193 // There are some application locales which can't be used as a | 1194 // There are some application locales which can't be used as a |
1194 // target language for translation. | 1195 // target language for translation. |
1195 TranslateDownloadManager::IsSupportedLanguage(target_lang) && | 1196 translate::TranslateDownloadManager::IsSupportedLanguage( |
| 1197 target_lang) && |
1196 // Disable on the Instant Extended NTP. | 1198 // Disable on the Instant Extended NTP. |
1197 !chrome::IsInstantNTP(source_web_contents_); | 1199 !chrome::IsInstantNTP(source_web_contents_); |
1198 } | 1200 } |
1199 | 1201 |
1200 case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: | 1202 case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: |
1201 case IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW: | 1203 case IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW: |
1202 return params_.link_url.is_valid(); | 1204 return params_.link_url.is_valid(); |
1203 | 1205 |
1204 case IDC_CONTENT_CONTEXT_COPYLINKLOCATION: | 1206 case IDC_CONTENT_CONTEXT_COPYLINKLOCATION: |
1205 return params_.unfiltered_link_url.is_valid(); | 1207 return params_.unfiltered_link_url.is_valid(); |
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1728 ChromeTranslateClient* chrome_translate_client = | 1730 ChromeTranslateClient* chrome_translate_client = |
1729 ChromeTranslateClient::FromWebContents(source_web_contents_); | 1731 ChromeTranslateClient::FromWebContents(source_web_contents_); |
1730 if (!chrome_translate_client || | 1732 if (!chrome_translate_client || |
1731 chrome_translate_client->GetLanguageState().IsPageTranslated() || | 1733 chrome_translate_client->GetLanguageState().IsPageTranslated() || |
1732 chrome_translate_client->GetLanguageState().translation_pending()) { | 1734 chrome_translate_client->GetLanguageState().translation_pending()) { |
1733 return; | 1735 return; |
1734 } | 1736 } |
1735 std::string original_lang = | 1737 std::string original_lang = |
1736 chrome_translate_client->GetLanguageState().original_language(); | 1738 chrome_translate_client->GetLanguageState().original_language(); |
1737 std::string target_lang = g_browser_process->GetApplicationLocale(); | 1739 std::string target_lang = g_browser_process->GetApplicationLocale(); |
1738 target_lang = TranslateDownloadManager::GetLanguageCode(target_lang); | 1740 target_lang = |
| 1741 translate::TranslateDownloadManager::GetLanguageCode(target_lang); |
1739 // Since the user decided to translate for that language and site, clears | 1742 // Since the user decided to translate for that language and site, clears |
1740 // any preferences for not translating them. | 1743 // any preferences for not translating them. |
1741 scoped_ptr<TranslatePrefs> prefs( | 1744 scoped_ptr<translate::TranslatePrefs> prefs( |
1742 ChromeTranslateClient::CreateTranslatePrefs(profile_->GetPrefs())); | 1745 ChromeTranslateClient::CreateTranslatePrefs(profile_->GetPrefs())); |
1743 prefs->UnblockLanguage(original_lang); | 1746 prefs->UnblockLanguage(original_lang); |
1744 prefs->RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); | 1747 prefs->RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); |
1745 TranslateManager* manager = | 1748 translate::TranslateManager* manager = |
1746 chrome_translate_client->GetTranslateManager(); | 1749 chrome_translate_client->GetTranslateManager(); |
1747 DCHECK(manager); | 1750 DCHECK(manager); |
1748 manager->TranslatePage(original_lang, target_lang, true); | 1751 manager->TranslatePage(original_lang, target_lang, true); |
1749 break; | 1752 break; |
1750 } | 1753 } |
1751 | 1754 |
1752 case IDC_CONTENT_CONTEXT_RELOADFRAME: | 1755 case IDC_CONTENT_CONTEXT_RELOADFRAME: |
1753 // We always obey the cache here. | 1756 // We always obey the cache here. |
1754 // TODO(evanm): Perhaps we could allow shift-clicking the menu item to do | 1757 // TODO(evanm): Perhaps we could allow shift-clicking the menu item to do |
1755 // a cache-ignoring reload of the frame. | 1758 // a cache-ignoring reload of the frame. |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1995 source_web_contents_->GetRenderViewHost()-> | 1998 source_web_contents_->GetRenderViewHost()-> |
1996 ExecuteMediaPlayerActionAtLocation(location, action); | 1999 ExecuteMediaPlayerActionAtLocation(location, action); |
1997 } | 2000 } |
1998 | 2001 |
1999 void RenderViewContextMenu::PluginActionAt( | 2002 void RenderViewContextMenu::PluginActionAt( |
2000 const gfx::Point& location, | 2003 const gfx::Point& location, |
2001 const WebPluginAction& action) { | 2004 const WebPluginAction& action) { |
2002 source_web_contents_->GetRenderViewHost()-> | 2005 source_web_contents_->GetRenderViewHost()-> |
2003 ExecutePluginActionAtLocation(location, action); | 2006 ExecutePluginActionAtLocation(location, action); |
2004 } | 2007 } |
OLD | NEW |