| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1186 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); | 1186 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); |
| 1187 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); | 1187 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); |
| 1188 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); | 1188 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); |
| 1189 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); | 1189 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); |
| 1190 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, | 1190 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, |
| 1191 IDS_CONTENT_CONTEXT_SAVEPAGEAS); | 1191 IDS_CONTENT_CONTEXT_SAVEPAGEAS); |
| 1192 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); | 1192 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); |
| 1193 AppendMediaRouterItem(); | 1193 AppendMediaRouterItem(); |
| 1194 | 1194 |
| 1195 if (TranslateService::IsTranslatableURL(params_.page_url)) { | 1195 if (TranslateService::IsTranslatableURL(params_.page_url)) { |
| 1196 std::string locale = g_browser_process->GetApplicationLocale(); | 1196 std::unique_ptr<translate::TranslatePrefs> prefs( |
| 1197 locale = translate::TranslateDownloadManager::GetLanguageCode(locale); | 1197 ChromeTranslateClient::CreateTranslatePrefs( |
| 1198 GetPrefs(browser_context_))); |
| 1199 std::string locale = |
| 1200 translate::TranslateManager::GetTargetLanguage(prefs.get()); |
| 1198 base::string16 language = | 1201 base::string16 language = |
| 1199 l10n_util::GetDisplayNameForLocale(locale, locale, true); | 1202 l10n_util::GetDisplayNameForLocale(locale, locale, true); |
| 1200 menu_model_.AddItem( | 1203 menu_model_.AddItem( |
| 1201 IDC_CONTENT_CONTEXT_TRANSLATE, | 1204 IDC_CONTENT_CONTEXT_TRANSLATE, |
| 1202 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); | 1205 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); |
| 1203 AddGoogleIconToLastMenuItem(&menu_model_); | 1206 AddGoogleIconToLastMenuItem(&menu_model_); |
| 1204 } | 1207 } |
| 1205 } | 1208 } |
| 1206 | 1209 |
| 1207 void RenderViewContextMenu::AppendExitFullscreenItem() { | 1210 void RenderViewContextMenu::AppendExitFullscreenItem() { |
| (...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1972 ChromeTranslateClient::FromWebContents(embedder_web_contents_); | 1975 ChromeTranslateClient::FromWebContents(embedder_web_contents_); |
| 1973 // If no |chrome_translate_client| attached with this WebContents or we're | 1976 // If no |chrome_translate_client| attached with this WebContents or we're |
| 1974 // viewing in a MimeHandlerViewGuest translate will be disabled. | 1977 // viewing in a MimeHandlerViewGuest translate will be disabled. |
| 1975 if (!chrome_translate_client || | 1978 if (!chrome_translate_client || |
| 1976 !!extensions::MimeHandlerViewGuest::FromWebContents( | 1979 !!extensions::MimeHandlerViewGuest::FromWebContents( |
| 1977 source_web_contents_)) { | 1980 source_web_contents_)) { |
| 1978 return false; | 1981 return false; |
| 1979 } | 1982 } |
| 1980 std::string original_lang = | 1983 std::string original_lang = |
| 1981 chrome_translate_client->GetLanguageState().original_language(); | 1984 chrome_translate_client->GetLanguageState().original_language(); |
| 1982 std::string target_lang = g_browser_process->GetApplicationLocale(); | 1985 std::unique_ptr<translate::TranslatePrefs> prefs( |
| 1983 target_lang = | 1986 ChromeTranslateClient::CreateTranslatePrefs( |
| 1984 translate::TranslateDownloadManager::GetLanguageCode(target_lang); | 1987 GetPrefs(browser_context_))); |
| 1988 std::string target_lang = |
| 1989 translate::TranslateManager::GetTargetLanguage(prefs.get()); |
| 1985 // Note that we intentionally enable the menu even if the original and | 1990 // Note that we intentionally enable the menu even if the original and |
| 1986 // target languages are identical. This is to give a way to user to | 1991 // target languages are identical. This is to give a way to user to |
| 1987 // translate a page that might contains text fragments in a different | 1992 // translate a page that might contains text fragments in a different |
| 1988 // language. | 1993 // language. |
| 1989 return ((params_.edit_flags & WebContextMenuData::CanTranslate) != 0) && | 1994 return ((params_.edit_flags & WebContextMenuData::CanTranslate) != 0) && |
| 1990 !original_lang.empty() && // Did we receive the page language yet? | 1995 !original_lang.empty() && // Did we receive the page language yet? |
| 1991 !chrome_translate_client->GetLanguageState().IsPageTranslated() && | 1996 !chrome_translate_client->GetLanguageState().IsPageTranslated() && |
| 1992 !embedder_web_contents_->GetInterstitialPage() && | 1997 !embedder_web_contents_->GetInterstitialPage() && |
| 1993 // There are some application locales which can't be used as a | 1998 // There are some application locales which can't be used as a |
| 1994 // target language for translation. | 1999 // target language for translation. In that case GetTargetLanguage() |
| 1995 translate::TranslateDownloadManager::IsSupportedLanguage( | 2000 // may return empty. |
| 1996 target_lang) && | 2001 !target_lang.empty() && |
| 1997 // Disable on the Instant Extended NTP. | 2002 // Disable on the Instant Extended NTP. |
| 1998 !search::IsInstantNTP(embedder_web_contents_); | 2003 !search::IsInstantNTP(embedder_web_contents_); |
| 1999 } | 2004 } |
| 2000 | 2005 |
| 2001 bool RenderViewContextMenu::IsSaveLinkAsEnabled() const { | 2006 bool RenderViewContextMenu::IsSaveLinkAsEnabled() const { |
| 2002 PrefService* local_state = g_browser_process->local_state(); | 2007 PrefService* local_state = g_browser_process->local_state(); |
| 2003 DCHECK(local_state); | 2008 DCHECK(local_state); |
| 2004 // Test if file-selection dialogs are forbidden by policy. | 2009 // Test if file-selection dialogs are forbidden by policy. |
| 2005 if (!local_state->GetBoolean(prefs::kAllowFileSelectionDialogs)) | 2010 if (!local_state->GetBoolean(prefs::kAllowFileSelectionDialogs)) |
| 2006 return false; | 2011 return false; |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2387 ChromeTranslateClient* chrome_translate_client = | 2392 ChromeTranslateClient* chrome_translate_client = |
| 2388 ChromeTranslateClient::FromWebContents(embedder_web_contents_); | 2393 ChromeTranslateClient::FromWebContents(embedder_web_contents_); |
| 2389 if (!chrome_translate_client || | 2394 if (!chrome_translate_client || |
| 2390 chrome_translate_client->GetLanguageState().IsPageTranslated() || | 2395 chrome_translate_client->GetLanguageState().IsPageTranslated() || |
| 2391 chrome_translate_client->GetLanguageState().translation_pending()) { | 2396 chrome_translate_client->GetLanguageState().translation_pending()) { |
| 2392 return; | 2397 return; |
| 2393 } | 2398 } |
| 2394 | 2399 |
| 2395 std::string original_lang = | 2400 std::string original_lang = |
| 2396 chrome_translate_client->GetLanguageState().original_language(); | 2401 chrome_translate_client->GetLanguageState().original_language(); |
| 2397 std::string target_lang = | |
| 2398 translate::TranslateDownloadManager::GetLanguageCode( | |
| 2399 g_browser_process->GetApplicationLocale()); | |
| 2400 | 2402 |
| 2401 // Since the user decided to translate for that language and site, clears | 2403 // Since the user decided to translate for that language and site, clears |
| 2402 // any preferences for not translating them. | 2404 // any preferences for not translating them. |
| 2403 std::unique_ptr<translate::TranslatePrefs> prefs( | 2405 std::unique_ptr<translate::TranslatePrefs> prefs( |
| 2404 ChromeTranslateClient::CreateTranslatePrefs( | 2406 ChromeTranslateClient::CreateTranslatePrefs( |
| 2405 GetPrefs(browser_context_))); | 2407 GetPrefs(browser_context_))); |
| 2408 std::string target_lang = |
| 2409 translate::TranslateManager::GetTargetLanguage(prefs.get()); |
| 2406 prefs->UnblockLanguage(original_lang); | 2410 prefs->UnblockLanguage(original_lang); |
| 2407 prefs->RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); | 2411 prefs->RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); |
| 2408 | 2412 |
| 2409 translate::TranslateManager* manager = | 2413 translate::TranslateManager* manager = |
| 2410 chrome_translate_client->GetTranslateManager(); | 2414 chrome_translate_client->GetTranslateManager(); |
| 2411 DCHECK(manager); | 2415 DCHECK(manager); |
| 2412 manager->TranslatePage(original_lang, target_lang, true); | 2416 manager->TranslatePage(original_lang, target_lang, true); |
| 2413 } | 2417 } |
| 2414 | 2418 |
| 2415 void RenderViewContextMenu::ExecLanguageSettings(int event_flags) { | 2419 void RenderViewContextMenu::ExecLanguageSettings(int event_flags) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 2438 source_web_contents_->GetRenderViewHost()-> | 2442 source_web_contents_->GetRenderViewHost()-> |
| 2439 ExecuteMediaPlayerActionAtLocation(location, action); | 2443 ExecuteMediaPlayerActionAtLocation(location, action); |
| 2440 } | 2444 } |
| 2441 | 2445 |
| 2442 void RenderViewContextMenu::PluginActionAt( | 2446 void RenderViewContextMenu::PluginActionAt( |
| 2443 const gfx::Point& location, | 2447 const gfx::Point& location, |
| 2444 const WebPluginAction& action) { | 2448 const WebPluginAction& action) { |
| 2445 source_web_contents_->GetRenderViewHost()-> | 2449 source_web_contents_->GetRenderViewHost()-> |
| 2446 ExecutePluginActionAtLocation(location, action); | 2450 ExecutePluginActionAtLocation(location, action); |
| 2447 } | 2451 } |
| OLD | NEW |