about:addons (and other UI) displays in English when profile is set to a different language

REOPENED
Unassigned

Status

()

defect
P2
normal
REOPENED
6 months ago
5 months ago

People

(Reporter: groovecoder, Unassigned, NeedInfo)

Tracking

({regression})

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

Steps to reproduce:

  1. Create a new profile
  2. Switch that profile to German (https://support.mozilla.org/en-US/kb/use-firefox-another-language?redirectlocale=en-US&redirectslug=use-firefox-interface-other-languages-language-pack#w_switch-firefox-to-another-language)
  3. Use web-ext run to run an add-on with that profile

Expected results:
about:addons should display with German strings

Actual results:
about:addons displays with English strings

Also, when I open a new window in the web-ext run session, the 2nd window's menus display in English.

Looks like this is a bug in web-ext, I've moved it to https://github.com/mozilla/web-ext/issues/1498. Marking this as invalid cause I can't think of anything better.

Status: NEW → RESOLVED
Closed: 5 months ago
Resolution: --- → INVALID

This is not a bug in web-ext, but in Firefox. The bug is triggered by web-ext run -p because the -p flag of web-ext run copies the profile directory, and apparently the UI language unexpectedly changes under the following circumstances:

  1. Profile directory is copied/moved elsewhere.
  2. The timestamp of the langpack xpi is changed.
  3. Firefox is started with this profile.

Reproduced on Linux, Firefox Release 64.0, Firefox Beta (66.0b4), Firefox Nightly (67.0a1 buildID 20190205215922 ).
Not reproducible on Firefox 63.0

STR without web-ext:

  1. Create a new directory, e.g. /tmp/profdir
  2. Start Firefox (Firefox : firefox --no-remote -profile /tmp/profdir
  3. Install a langpack.
  4. Restart Firefox and quit Firefox.
  5. Copy the directory to a different location. Make sure that the timestamp of the langpack xpi in the profile directory is changed:
    cp -ra /tmp/profdir /tmp/newdir
    touch /tmp/newdir/extensions/langpack-nl@firefox.mozilla.org.xpi
    
    ( or just copy without preserving attributes/timestamps: cp -r /tmp/profdir /tmp/newdir )
  6. Start Firefox with this new profile directory:
    firefox --no-remote -profile /tmp/newdir about:config
    

(in relation with the bug report, using web-ext run just automates step 5 and 6)

Expected:

  • Language of UI should still be in Dutch.

Actual:

  • Language of about:config (or any chrome page) has reverted to English.
    The current UI (browser menus) are still in Dutch, but if a new window is opened all strings are in English.

Additional observation:

  • Right after the interface is updated to the incorrect language, the following message appears in the global browser console:

    addons.xpi	WARN	Add-on langpack-nl@firefox.mozilla.org is missing bootstrap method update
    

    When I patch Firefox (67.0a1 buildID 20190205215922) and include a stack trace with this message, the stack trace is:

    async*_install@resource://gre/modules/addons/XPIProvider.jsm:1874:13
    async*update@resource://gre/modules/addons/XPIProvider.jsm:1953:12
    async*applyStartupChange@resource://gre/modules/addons/XPIDatabase.jsm:2846:67
    processFileChanges@resource://gre/modules/addons/XPIDatabase.jsm:2761:21
    getNewSideloads@resource://gre/modules/addons/XPIProvider.jsm:2682:7
    async*getNewSideloads@resource://gre/modules/AddonManager.jsm:2805:33
    _checkForSideloaded@resource:///modules/ExtensionsUI.jsm:65:28
    async*init@resource:///modules/ExtensionsUI.jsm:61:5
    async*BG__onWindowsRestored@jar:file:///tmp/nigbin/browser/omni.ja!/components/nsBrowserGlue.js:1520:5
    BG_observe@jar:file:///tmp/nigbin/browser/omni.ja!/components/nsBrowserGlue.js:723:9
    async*initializeWindow@resource:///modules/sessionstore/SessionStore.jsm:1191:9
    onBeforeBrowserWindowShown/<@resource:///modules/sessionstore/SessionStore.jsm:1343:9
    promise callback*onBeforeBrowserWindowShown@resource:///modules/sessionstore/SessionStore.jsm:1328:5
    ssi_observe@resource:///modules/sessionstore/SessionStore.jsm:772:9
    onLoad@chrome://browser/content/browser.js:1378:5
    EventHandlerNonNull*@chrome://browser/content/browser.xul:105:19
    
Status: RESOLVED → REOPENED
Component: Developer Tools → General
Resolution: INVALID → ---
Posted video slowmo.ogv

Slow-motion video (slowed down by 4x) of starting Firefox 67.0a1 (build 20190205215922 ) on Linux with web-ext run -f firefox-nightly -p /tmp/nigprof/ -u about:support and quickly opening the JS console after startup with Ctrl-Shift-J.

From the video, it is apparent that the page is initially rendered as Dutch, but switches to English. Immediately after the updated translation, the console shows the following warning message:

addons.xpi	WARN	Add-on langpack-nl@firefox.mozilla.org is missing bootstrap method update

Note that after restarting Firefox, the UI is back at the expected language.

Flags: needinfo?(gandalf)
Product: WebExtensions → Localization Infrastructure and Tools
Version: 65 Branch → unspecified

Isn't this a bug for Toolkit::Add-ons? I see that warning was added in bug 1461217, so kmag or aswan might know more.

The warning is not the cause of the error, but its occurrence could help with identifying the cause of the bug. It implies that Firefox treats the touched langpack xpi as a new install.

I retried again, and can also reproduce in 63. Previously I thought that the bug does not occur in 63, because about:config was initially not changing language. If I reload about:config in Firefox 63, then the language becomes bad again. This difference in perceived result is caused by the transition to Fluent for about:config in bug 1486936.

To truly verify whether the bug occurs, have step 7 after step 6: Open another new window and check whether the UI (e.g. location bar) has the expected language.

With the updated reproduction step, I managed to reproduce

I couldn't find pre-built language packs for Nightly versions of these on the CDN, so I was not able to bisect further with mozregression. Given the bug and good/bad versions, this regression is likely caused by bug 1492459.

Blocks: 1492459
Component: General → Add-ons Manager
Keywords: regression
Product: Localization Infrastructure and Tools → Toolkit

So the bug here is that localized profiles are not portable.

Test using Firefox Nightly 67.0a1 20190211092917 with https://download-origin.cdn.mozilla.net/pub/firefox/nightly/2019/02/2019-02-11-09-29-17-mozilla-central-l10n/linux-x86_64/xpi/firefox-67.0a1.nl.langpack.xpi

  • profile moved: language completely lost (uses English at startup).
    After quitting Firefox and starting it again, the browser is completely unusable (yellow page with red <window id="main-window").

  • profile copied with preserved timestamps: language kept.
    Also works on repeated restarts.
    Upon (re)moving the original profile directory, the browser UI looks very broken and is unusable (e.g. cannot navigate pages, menus are not working). Seems to use the expected language though, also on repeated restarts (which is of no use if the browser is unusable...).

  • profile copied, xpi timestamp touched: expected language initially used, then reverts to English.
    On restarts, the expected language is used. Even if the original profile is removed.

You need to log in before you can comment on or make changes to this bug.