diff options
author | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-24 20:07:46 +0000 |
---|---|---|
committer | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-24 20:07:46 +0000 |
commit | 7f8fdc7ac98c1543f837018c3ff034a0d4fbb26e (patch) | |
tree | 9eda9a1bf3c7ea7ab1b64ddefb107f3c8466e195 /chrome | |
parent | bc50146bf7ed9d6a8043cadca454e383f77c9b5e (diff) | |
download | chromium_src-7f8fdc7ac98c1543f837018c3ff034a0d4fbb26e.zip chromium_src-7f8fdc7ac98c1543f837018c3ff034a0d4fbb26e.tar.gz chromium_src-7f8fdc7ac98c1543f837018c3ff034a0d4fbb26e.tar.bz2 |
There are some application locale which can't be used as a target language for translation...
And this is the cause of some crashes...
BUG=47807
TEST=Make sure that none of the application languages for which we don't support translating to don't enable the translate context menu option.
Review URL: http://codereview.chromium.org/9212035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118880 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/tab_contents/render_view_context_menu.cc | 5 | ||||
-rw-r--r-- | chrome/browser/translate/translate_manager_browsertest.cc | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc index 3b62603..a1f0815 100644 --- a/chrome/browser/tab_contents/render_view_context_menu.cc +++ b/chrome/browser/tab_contents/render_view_context_menu.cc @@ -1131,7 +1131,10 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const { TranslateManager::IsSupportedLanguage(original_lang)) && !helper->language_state().IsPageTranslated() && !source_web_contents_->GetInterstitialPage() && - TranslateManager::IsTranslatableURL(params_.page_url); + TranslateManager::IsTranslatableURL(params_.page_url) && + // There are some application locales which can't be used as a + // target language for translation. + TranslateManager::IsSupportedLanguage(target_lang); } case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: diff --git a/chrome/browser/translate/translate_manager_browsertest.cc b/chrome/browser/translate/translate_manager_browsertest.cc index 1057705..8306655 100644 --- a/chrome/browser/translate/translate_manager_browsertest.cc +++ b/chrome/browser/translate/translate_manager_browsertest.cc @@ -956,8 +956,8 @@ TEST_F(TranslateManagerTest, ServerReportsUnsupportedLanguage) { EXPECT_TRUE(GetTranslateInfoBar() == NULL); } -// Tests that no translate infobar is shown when Chrome is in a language that -// the translate server does not support. +// Tests that no translate infobar is shown and context menu is disabled, when +// Chrome is in a language that the translate server does not support. TEST_F(TranslateManagerTest, UnsupportedUILanguage) { std::string original_lang = g_browser_process->GetApplicationLocale(); g_browser_process->SetApplicationLocale("qbz"); @@ -975,6 +975,13 @@ TEST_F(TranslateManagerTest, UnsupportedUILanguage) { // No info-bar should be shown. EXPECT_TRUE(GetTranslateInfoBar() == NULL); + // And the context menu option should be disabled too. + scoped_ptr<TestRenderViewContextMenu> menu( + TestRenderViewContextMenu::CreateContextMenu(contents())); + menu->Init(); + EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE)); + EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE)); + g_browser_process->SetApplicationLocale(original_lang); } |