| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" | 58 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" |
| 59 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" | 59 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" |
| 60 #include "chrome/common/chrome_constants.h" | 60 #include "chrome/common/chrome_constants.h" |
| 61 #include "chrome/common/chrome_switches.h" | 61 #include "chrome/common/chrome_switches.h" |
| 62 #include "chrome/common/content_restriction.h" | 62 #include "chrome/common/content_restriction.h" |
| 63 #include "chrome/common/net/url_util.h" | 63 #include "chrome/common/net/url_util.h" |
| 64 #include "chrome/common/pref_names.h" | 64 #include "chrome/common/pref_names.h" |
| 65 #include "chrome/common/render_messages.h" | 65 #include "chrome/common/render_messages.h" |
| 66 #include "chrome/common/spellcheck_messages.h" | 66 #include "chrome/common/spellcheck_messages.h" |
| 67 #include "chrome/common/url_constants.h" | 67 #include "chrome/common/url_constants.h" |
| 68 #include "components/translate/core/browser/translate_download_manager.h" |
| 68 #include "content/public/browser/child_process_security_policy.h" | 69 #include "content/public/browser/child_process_security_policy.h" |
| 69 #include "content/public/browser/download_manager.h" | 70 #include "content/public/browser/download_manager.h" |
| 70 #include "content/public/browser/download_save_info.h" | 71 #include "content/public/browser/download_save_info.h" |
| 71 #include "content/public/browser/download_url_parameters.h" | 72 #include "content/public/browser/download_url_parameters.h" |
| 72 #include "content/public/browser/navigation_details.h" | 73 #include "content/public/browser/navigation_details.h" |
| 73 #include "content/public/browser/navigation_entry.h" | 74 #include "content/public/browser/navigation_entry.h" |
| 74 #include "content/public/browser/notification_service.h" | 75 #include "content/public/browser/notification_service.h" |
| 75 #include "content/public/browser/render_frame_host.h" | 76 #include "content/public/browser/render_frame_host.h" |
| 76 #include "content/public/browser/render_process_host.h" | 77 #include "content/public/browser/render_process_host.h" |
| 77 #include "content/public/browser/render_view_host.h" | 78 #include "content/public/browser/render_view_host.h" |
| (...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 953 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); | 954 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); |
| 954 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); | 955 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); |
| 955 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); | 956 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); |
| 956 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); | 957 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); |
| 957 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, | 958 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, |
| 958 IDS_CONTENT_CONTEXT_SAVEPAGEAS); | 959 IDS_CONTENT_CONTEXT_SAVEPAGEAS); |
| 959 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); | 960 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); |
| 960 | 961 |
| 961 if (TranslateManager::IsTranslatableURL(params_.page_url)) { | 962 if (TranslateManager::IsTranslatableURL(params_.page_url)) { |
| 962 std::string locale = g_browser_process->GetApplicationLocale(); | 963 std::string locale = g_browser_process->GetApplicationLocale(); |
| 963 locale = TranslateManager::GetLanguageCode(locale); | 964 locale = TranslateDownloadManager::GetLanguageCode(locale); |
| 964 base::string16 language = | 965 base::string16 language = |
| 965 l10n_util::GetDisplayNameForLocale(locale, locale, true); | 966 l10n_util::GetDisplayNameForLocale(locale, locale, true); |
| 966 menu_model_.AddItem( | 967 menu_model_.AddItem( |
| 967 IDC_CONTENT_CONTEXT_TRANSLATE, | 968 IDC_CONTENT_CONTEXT_TRANSLATE, |
| 968 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); | 969 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); |
| 969 } | 970 } |
| 970 | 971 |
| 971 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE, | 972 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE, |
| 972 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE); | 973 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE); |
| 973 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWPAGEINFO, | 974 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWPAGEINFO, |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1229 return true; | 1230 return true; |
| 1230 | 1231 |
| 1231 case IDC_CONTENT_CONTEXT_TRANSLATE: { | 1232 case IDC_CONTENT_CONTEXT_TRANSLATE: { |
| 1232 TranslateTabHelper* translate_tab_helper = | 1233 TranslateTabHelper* translate_tab_helper = |
| 1233 TranslateTabHelper::FromWebContents(source_web_contents_); | 1234 TranslateTabHelper::FromWebContents(source_web_contents_); |
| 1234 if (!translate_tab_helper) | 1235 if (!translate_tab_helper) |
| 1235 return false; | 1236 return false; |
| 1236 std::string original_lang = | 1237 std::string original_lang = |
| 1237 translate_tab_helper->GetLanguageState().original_language(); | 1238 translate_tab_helper->GetLanguageState().original_language(); |
| 1238 std::string target_lang = g_browser_process->GetApplicationLocale(); | 1239 std::string target_lang = g_browser_process->GetApplicationLocale(); |
| 1239 target_lang = TranslateManager::GetLanguageCode(target_lang); | 1240 target_lang = TranslateDownloadManager::GetLanguageCode(target_lang); |
| 1240 // Note that we intentionally enable the menu even if the original and | 1241 // Note that we intentionally enable the menu even if the original and |
| 1241 // target languages are identical. This is to give a way to user to | 1242 // target languages are identical. This is to give a way to user to |
| 1242 // translate a page that might contains text fragments in a different | 1243 // translate a page that might contains text fragments in a different |
| 1243 // language. | 1244 // language. |
| 1244 return ((params_.edit_flags & WebContextMenuData::CanTranslate) != 0) && | 1245 return ((params_.edit_flags & WebContextMenuData::CanTranslate) != 0) && |
| 1245 !original_lang.empty() && // Did we receive the page language yet? | 1246 !original_lang.empty() && // Did we receive the page language yet? |
| 1246 !translate_tab_helper->GetLanguageState().IsPageTranslated() && | 1247 !translate_tab_helper->GetLanguageState().IsPageTranslated() && |
| 1247 !source_web_contents_->GetInterstitialPage() && | 1248 !source_web_contents_->GetInterstitialPage() && |
| 1248 // There are some application locales which can't be used as a | 1249 // There are some application locales which can't be used as a |
| 1249 // target language for translation. | 1250 // target language for translation. |
| 1250 TranslateManager::IsSupportedLanguage(target_lang) && | 1251 TranslateDownloadManager::IsSupportedLanguage(target_lang) && |
| 1251 // Disable on the Instant Extended NTP. | 1252 // Disable on the Instant Extended NTP. |
| 1252 !chrome::IsInstantNTP(source_web_contents_); | 1253 !chrome::IsInstantNTP(source_web_contents_); |
| 1253 } | 1254 } |
| 1254 | 1255 |
| 1255 case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: | 1256 case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: |
| 1256 case IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW: | 1257 case IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW: |
| 1257 return params_.link_url.is_valid(); | 1258 return params_.link_url.is_valid(); |
| 1258 | 1259 |
| 1259 case IDC_CONTENT_CONTEXT_COPYLINKLOCATION: | 1260 case IDC_CONTENT_CONTEXT_COPYLINKLOCATION: |
| 1260 return params_.unfiltered_link_url.is_valid(); | 1261 return params_.unfiltered_link_url.is_valid(); |
| (...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1814 TranslateTabHelper* translate_tab_helper = | 1815 TranslateTabHelper* translate_tab_helper = |
| 1815 TranslateTabHelper::FromWebContents(source_web_contents_); | 1816 TranslateTabHelper::FromWebContents(source_web_contents_); |
| 1816 if (!translate_tab_helper || | 1817 if (!translate_tab_helper || |
| 1817 translate_tab_helper->GetLanguageState().IsPageTranslated() || | 1818 translate_tab_helper->GetLanguageState().IsPageTranslated() || |
| 1818 translate_tab_helper->GetLanguageState().translation_pending()) { | 1819 translate_tab_helper->GetLanguageState().translation_pending()) { |
| 1819 return; | 1820 return; |
| 1820 } | 1821 } |
| 1821 std::string original_lang = | 1822 std::string original_lang = |
| 1822 translate_tab_helper->GetLanguageState().original_language(); | 1823 translate_tab_helper->GetLanguageState().original_language(); |
| 1823 std::string target_lang = g_browser_process->GetApplicationLocale(); | 1824 std::string target_lang = g_browser_process->GetApplicationLocale(); |
| 1824 target_lang = TranslateManager::GetLanguageCode(target_lang); | 1825 target_lang = TranslateDownloadManager::GetLanguageCode(target_lang); |
| 1825 // Since the user decided to translate for that language and site, clears | 1826 // Since the user decided to translate for that language and site, clears |
| 1826 // any preferences for not translating them. | 1827 // any preferences for not translating them. |
| 1827 TranslatePrefs prefs(profile_->GetPrefs()); | 1828 TranslatePrefs prefs(profile_->GetPrefs()); |
| 1828 prefs.UnblockLanguage(original_lang); | 1829 prefs.UnblockLanguage(original_lang); |
| 1829 prefs.RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); | 1830 prefs.RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); |
| 1830 TranslateManager::GetInstance()->TranslatePage( | 1831 TranslateManager::GetInstance()->TranslatePage( |
| 1831 source_web_contents_, original_lang, target_lang); | 1832 source_web_contents_, original_lang, target_lang); |
| 1832 break; | 1833 break; |
| 1833 } | 1834 } |
| 1834 | 1835 |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2106 source_web_contents_->GetRenderViewHost()-> | 2107 source_web_contents_->GetRenderViewHost()-> |
| 2107 ExecuteMediaPlayerActionAtLocation(location, action); | 2108 ExecuteMediaPlayerActionAtLocation(location, action); |
| 2108 } | 2109 } |
| 2109 | 2110 |
| 2110 void RenderViewContextMenu::PluginActionAt( | 2111 void RenderViewContextMenu::PluginActionAt( |
| 2111 const gfx::Point& location, | 2112 const gfx::Point& location, |
| 2112 const WebPluginAction& action) { | 2113 const WebPluginAction& action) { |
| 2113 source_web_contents_->GetRenderViewHost()-> | 2114 source_web_contents_->GetRenderViewHost()-> |
| 2114 ExecutePluginActionAtLocation(location, action); | 2115 ExecutePluginActionAtLocation(location, action); |
| 2115 } | 2116 } |
| OLD | NEW |