summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-30 06:34:06 +0000
committerjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-30 06:34:06 +0000
commit7c3ed12e886040fbb1cec171d1d45cb2b7ddf003 (patch)
tree22eb86a9fa487181fe82efc24ed186d3958427e2
parent963e4de825d0d116f345f89a0fa9ef32f98e6a2e (diff)
downloadchromium_src-7c3ed12e886040fbb1cec171d1d45cb2b7ddf003.zip
chromium_src-7c3ed12e886040fbb1cec171d1d45cb2b7ddf003.tar.gz
chromium_src-7c3ed12e886040fbb1cec171d1d45cb2b7ddf003.tar.bz2
Making the translate context menu reset the blacklisting.
BUG=None TEST=Select a site in a language different than the Chrome language, select never translate this site/language. Visit that site again, use the context menu to translate. The site and language should not be blacklisted for translation anymore. Review URL: http://codereview.chromium.org/1551001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43058 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/tab_contents/render_view_context_menu.cc15
-rw-r--r--chrome/browser/translate/translate_manager_unittest.cc15
2 files changed, 23 insertions, 7 deletions
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index c44ca8b..7cf0c86 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -1025,11 +1025,16 @@ void RenderViewContextMenu::ExecuteItemCommand(int id) {
source_tab_contents_->language_state().translation_pending()) {
return;
}
- std::string locale = g_browser_process->GetApplicationLocale();
- locale = TranslationService::GetLanguageCode(locale);
- source_tab_contents_->TranslatePage(
- source_tab_contents_->language_state().original_language(),
- locale);
+ std::string original_lang =
+ source_tab_contents_->language_state().original_language();
+ std::string target_lang = g_browser_process->GetApplicationLocale();
+ target_lang = TranslationService::GetLanguageCode(target_lang);
+ // Since the user decided to translate for that language and site, clears
+ // any preferences for not translating them.
+ TranslatePrefs prefs(profile_->GetPrefs());
+ prefs.RemoveLanguageFromBlacklist(original_lang);
+ prefs.RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets());
+ source_tab_contents_->TranslatePage(original_lang, target_lang);
break;
}
diff --git a/chrome/browser/translate/translate_manager_unittest.cc b/chrome/browser/translate/translate_manager_unittest.cc
index 708b29d..bc0924c 100644
--- a/chrome/browser/translate/translate_manager_unittest.cc
+++ b/chrome/browser/translate/translate_manager_unittest.cc
@@ -749,9 +749,16 @@ TEST_F(TranslateManagerTest, AlwaysTranslateLanguagePref) {
// Context menu.
TEST_F(TranslateManagerTest, ContextMenu) {
+ // Blacklist www.google.fr and French for translation.
+ GURL url("http://www.google.fr");
+ TranslatePrefs translate_prefs(contents()->profile()->GetPrefs());
+ translate_prefs.BlacklistLanguage("fr");
+ translate_prefs.BlacklistSite(url.host());
+ EXPECT_TRUE(translate_prefs.IsLanguageBlacklisted("fr"));
+ EXPECT_TRUE(translate_prefs.IsSiteBlacklisted(url.host()));
+
// Simulate navigating to a page in French. The translate menu should show.
- SimulateNavigation(GURL("http://www.google.fr"), 0, L"Le Google", "fr");
- EXPECT_TRUE(GetTranslateInfoBar() != NULL);
+ SimulateNavigation(url, 0, L"Le Google", "fr");
scoped_ptr<TestRenderViewContextMenu> menu(
TestRenderViewContextMenu::CreateContextMenu(contents()));
menu->Init();
@@ -770,6 +777,10 @@ TEST_F(TranslateManagerTest, ContextMenu) {
EXPECT_EQ("en", target_lang);
process()->sink().ClearMessages();
+ // This should also have reverted the blacklisting of this site and language.
+ EXPECT_FALSE(translate_prefs.IsLanguageBlacklisted("fr"));
+ EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(url.host()));
+
// Let's simulate the page being translated.
rvh()->TestOnMessageReceived(ViewHostMsg_PageTranslated(0, 0, "fr", "en",
TranslateErrors::NONE));