Commit de7d4efe authored by Anthony Vallee-Dubois's avatar Anthony Vallee-Dubois Committed by Commit Bot

Avoid adding hrefTranslate targets to accept languages

Bug: 901867
Change-Id: Ica4f7ef18854c726f678485ce045042b8d13fbc1
Reviewed-on: https://chromium-review.googlesource.com/c/1352334Reviewed-by: default avatarMichael Martis <martis@chromium.org>
Commit-Queue: anthonyvd <anthonyvd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611854}
parent 5a1fc1dc
......@@ -9,11 +9,14 @@
#include "build/build_config.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/prefs/session_startup_pref.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/translate/chrome_translate_client.h"
#include "chrome/browser/translate/translate_accept_languages_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/translate/core/browser/translate_accept_languages.h"
#include "components/translate/core/browser/translate_error_details.h"
#include "components/translate/core/common/language_detection_details.h"
#include "components/translate/core/common/translate_switches.h"
......@@ -437,8 +440,13 @@ IN_PROC_BROWSER_TEST_F(TranslateManagerBrowserTest, HrefTranslateSuccess) {
// See that the page was translated automatically
WaitUntilPageTranslated();
EXPECT_EQ("en",
EXPECT_EQ("ja",
chrome_translate_client->GetLanguageState().current_language());
// The target shouldn't be added to accept languages.
EXPECT_FALSE(TranslateAcceptLanguagesFactory::GetForBrowserContext(
browser()->profile())
->IsAcceptLanguage("ja"));
}
// Test that hrefTranslate with an unsupported language doesn't trigger.
......
......@@ -11,7 +11,7 @@ found in the LICENSE file.
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
</head>
<body>
<a href="french_page.html" hrefLang="fr" hrefTranslate="en" id="test">
<a href="french_page.html" hrefLang="fr" hrefTranslate="ja" id="test">
Ich deute auf eine französische Seite, aber ich möchte, dass sie ins Englische übersetzt wird
</a>
<br>
......
......@@ -713,7 +713,11 @@ void TranslateManager::AddTargetLanguageToAcceptLanguages(
std::vector<std::string> languages;
prefs->GetLanguageList(&languages);
if (std::none_of(languages.begin(), languages.end(), is_redundant)) {
// Only add the target language if it's not redundant with another already in
// the list, and if it's not an automatic target (such as when translation
// happens because of an hrefTranslate navigation).
if (std::none_of(languages.begin(), languages.end(), is_redundant) &&
language_state_.AutoTranslateTo() != target_language_code) {
prefs->AddToLanguageList(target_language_code, /*force_blocked=*/false);
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment