New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 746771 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug

Blocking:
issue 765077



Sign in to add a comment

Language list in Settings does not match Accept_Language HTTP Header

Project Member Reported by claudiomagni@chromium.org, Jul 20 2017

Issue description

Chrome Version: 59.0.3029.112
OS: ChromeOS

Copied from developer report:
Chrome on ChromeOS is sending ACCEPT_LANGUAGE headers that are inconsistent with my preferences. I have two input methods, English and Bulgarian Phonetic. In all the preferences, English is ranked above Bulgarian: https://screenshot.googleplex.com/fGJ37NvnotO.png

Yet nevertheless Chrome sends
ACCEPT_LANGUAGE	en-US,bg-BG;q=0.8,bg;q=0.6,es-US;q=0.4,es;q=0.2,en;q=0.2
which ranks Bulgarian highest.



 
Labels: Hotlist-LanguageSettings
Short explanation:
In ChromeOS only, there are two different user preferences: #1 the accept_language header and #2 the list of languages in the settings. In other platforms they are the same (basically, #2 does not exist). That's why you see a difference.
The accept_language headers are always computed from #1, but in the settings in ChromeOS you can only directly affect #2.

Getting into more details:
a) In #1, the base language of a locale ("en" for "en-CA" for example) gets added automatically, so you can't ever control it from ChromeOS. In other platforms you can't remove it unless you first remove all the associated locales.
b) Also, the action of moving languages up or down in the settings in ChromeOS has not effect whatsoever on #1. Your only option is to add/remove a language: these actions effectively copy* the list from #2 to #1, so you will see it refrected in the http headers.

*Because of a), the copy is not exact when it comes to base languages.

Comment 3 by dpa...@chromium.org, Sep 15 2017

Blockedon: 765077

Comment 4 by dpa...@chromium.org, Sep 15 2017

Blocking: 765077

Comment 5 by dpa...@chromium.org, Sep 15 2017

Blockedon: -765077
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/72414d98432a1539183e50dd23ed22528672c0aa

commit 72414d98432a1539183e50dd23ed22528672c0aa
Author: Claudio Magni <claudiomagni@chromium.org>
Date: Tue Nov 07 06:29:48 2017

Added C++ API to move a language inside the list in Settings.

Currently, the logic that moves a language is completely handled in JS.
This change moves the logic to C++, into TranslatePrefs, which allows for
more extensive testing and better separation between UI and
preferences/settings.

This change is not behind a flag, because it's re-implementing the same
behavior and should be transparent for the user.
The only actual change is to fix a bug present in the current JS code.

Bug: 746771
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I042e417b0c6ef3563cab132c548d73dd046f7de1
Reviewed-on: https://chromium-review.googlesource.com/732814
Commit-Queue: Claudio M <claudiomagni@chromium.org>
Reviewed-by: Hajime Hoshi <hajimehoshi@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Dave Schuyler <dschuyler@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514412}
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.h
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/browser/resources/settings/languages_page/languages.js
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/browser/resources/settings/languages_page/languages_page.js
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/browser/resources/settings/languages_page/languages_types.js
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/common/extensions/api/language_settings_private.idl
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/test/data/webui/settings/fake_language_settings_private.js
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/chrome/test/data/webui/settings/languages_tests.js
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/components/translate/core/browser/translate_prefs.cc
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/components/translate/core/browser/translate_prefs.h
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/components/translate/core/browser/translate_prefs_unittest.cc
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/extensions/browser/extension_function_histogram_value.h
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/third_party/closure_compiler/externs/language_settings_private.js
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/third_party/closure_compiler/interfaces/language_settings_private_interface.js
[modify] https://crrev.com/72414d98432a1539183e50dd23ed22528672c0aa/tools/metrics/histograms/enums.xml

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/72c26c752d3a837b1f3d332ace04ab0d9429146a

commit 72c26c752d3a837b1f3d332ace04ab0d9429146a
Author: Claudio Magni <claudiomagni@chromium.org>
Date: Tue Nov 07 08:58:51 2017

Removed unused include

This was suggested by Hajime in previous CL 732814, right before submit.

Bug: 746771
Change-Id: I056f53a3d04a26ae7636ba74f7c08d37c07fbc68
Reviewed-on: https://chromium-review.googlesource.com/756294
Reviewed-by: Hajime Hoshi <hajimehoshi@chromium.org>
Commit-Queue: Hajime Hoshi <hajimehoshi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514422}
[modify] https://crrev.com/72c26c752d3a837b1f3d332ace04ab0d9429146a/components/translate/core/browser/translate_prefs.cc

 Issue 799426  has been merged into this issue.

Comment 9 by ovanieva@google.com, Feb 16 2018

Components: UI>Settings
Any progress on this?
No progress. I didn't have time given the new priorities I have now.

Sign in to add a comment