Closed Bug 1236347 Opened 8 years ago Closed 7 years ago

Some strings like in doorhangers, notification bars etc. always in English

Categories

(Toolkit Graveyard :: Notifications and Alerts, defect)

defect
Not set
major

Tracking

(firefox46 affected)

RESOLVED WORKSFORME
Tracking Status
firefox46 --- affected

People

(Reporter: aryx, Unassigned)

References

Details

Some strings like in doorhangers, notification bars etc. always in English.

This is basically the same issue as bug 1204374 but since Firefox 45, this also happens in new profiles on this machine.

Reproduces in Aurora 45.0a2 20160102 (tested with German) and Nightly 46.0a1 20160102 (tested with French) but not with 44.0b4 (tested with German).

Steps to reproduce:
1. Create a new Firefox profile.
2. In that profile, install the appropriate language pack from https://ftp.mozilla.org/pub/mozilla.org/firefox/
3. Open about:config and set general.useragent.locale to the correct value (e.g. if you install German as de.xpi in step 2, set it to |de|).
4. Close Firefox.
5. Launch Firefox.
Actual result:
If you wait for some seconds on Aurora, the telemetry info bar gets shown at the bottom in English while the menu bar and other UI elements are in the language set in step 2.
6. Open http://chrisdavidmills.github.io/push-api-demo/
Actual result:
Doorhanger popup which requests access to Push API is partially in English and the other language.

Because many Linux distros use language packs, this will be broadly visible on that platform.

As far as I know, the affected code is in nsBrowserGlue.js
Should this be tracked for 45?
Flags: needinfo?(l10n)
Can you remote debug one of these and check if gNavigatorBundle does the right thing?

I'm not sure we can track something we can't track to a cause, and this one puzzles me quite a bit.

My assumption is that there's startup path changes, which make language packs be loaded at a different point in time, and XUL stringbundle elements don't reload their strings on locale change.

But that's just throwing things out there.
Flags: needinfo?(l10n)
Does this reproduce on 45 beta as well?

I suspect this is caused by the devedition code here: https://dxr.mozilla.org/mozilla-central/rev/918df3a0bc1c4d07299e4f66274a7da923534577/browser/components/nsBrowserGlue.js#777-788

which will trigger gBrowserBundle's lazy getter to resolve earlier than it would on release builds.
Flags: needinfo?(aryx.bugmail)
Yes, also happens with 45.0b9 (20160223142613).
Flags: needinfo?(aryx.bugmail)
(In reply to Sebastian H. [:aryx][:archaeopteryx] from comment #5)
> Yes, also happens with 45.0b9 (20160223142613).

Can you log a stack from the lazy getter for gBrowserBundle on a beta build?
Flags: needinfo?(aryx.bugmail)
(I mean, or nightly, but I'm guessing that'll be the block I linked to... if not, that might be easier?)
Unfortunately, it isn't about nsBrowserGlue.js (see below):

Both with and without the language pack the stack trace in Nightly is:

jar:file:///c:/Mozilla/Coding/Firefox/Application/central/browser/omni.ja!/components/nsBrowserGlue.js (141)
resource://gre/modules/XPCOMUtils.jsm (198)

jar:file:///c:/Mozilla/Coding/Firefox/Application/central/browser/omni.ja!/components/nsBrowserGlue.js (783)
https://dxr.mozilla.org/mozilla-central/rev/918df3a0bc1c4d07299e4f66274a7da923534577/browser/components/nsBrowserGlue.js#778
> let themeName = gBrowserBundle.GetStringFromName("deveditionTheme.name");
The code you already identified.

jar:file:///c:/Mozilla/Coding/Firefox/Application/central/browser/omni.ja!/components/nsBrowserGlue.js (279)
https://dxr.mozilla.org/mozilla-central/rev/918df3a0bc1c4d07299e4f66274a7da923534577/browser/components/nsBrowserGlue.js#274
> this._finalUIStartup();

On 45.0b9, it doesn't get automatically triggered (neither in nsBrowseGlue.js nor in browser.js). An add-on install prompt (which uses English strings) doesn't trigger it, but a pointer lock demo from http://mdn.github.io/pointer-lock-demo/

jar:file:///c:/Mozilla/Coding/Firefox/Application/beta/browser/omni.ja!/components/nsBrowserGlue.js (160)
resource://gre/modules/XPCOMUtils.jsm (198)
jar:file:///c:/Mozilla/Coding/Firefox/Application/beta/browser/omni.ja!/components/nsBrowserGlue.js (2674)
jar:file:///c:/Mozilla/Coding/Firefox/Application/beta/browser/omni.ja!/components/nsBrowserGlue.js (2789)

So for the add-on install dialog, the English strings are from
https://dxr.mozilla.org/mozilla-central/rev/918df3a0bc1c4d07299e4f66274a7da923534577/browser/base/content/browser-addons.js#301
> messageString = gNavigatorBundle.getString("addonDownloadingAndVerifying");

and gNavigatorBundle is retrieved by browser.js from browser.xul:
https://dxr.mozilla.org/mozilla-central/rev/918df3a0bc1c4d07299e4f66274a7da923534577/browser/base/content/browser.js#86

The data reporting notification bar isn't from nsBrowserGlue.js but
https://dxr.mozilla.org/mozilla-central/rev/918df3a0bc1c4d07299e4f66274a7da923534577/browser/base/content/browser-data-submission-info-bar.js#56
Flags: needinfo?(aryx.bugmail)
Dave, why wouldn't we have loaded the lang pack when browser.js runs / browser.xul loads its stringbundles?
Flags: needinfo?(dtownsend)
(In reply to Sebastian H. [:aryx][:archaeopteryx] from comment #0)
> Some strings like in doorhangers, notification bars etc. always in English.
> 
> This is basically the same issue as bug 1204374 but since Firefox 45, this
> also happens in new profiles on this machine.
> 
> Reproduces in Aurora 45.0a2 20160102 (tested with German) and Nightly 46.0a1
> 20160102 (tested with French) but not with 44.0b4 (tested with German).
> 
> Steps to reproduce:
> 1. Create a new Firefox profile.
> 2. In that profile, install the appropriate language pack from
> https://ftp.mozilla.org/pub/mozilla.org/firefox/
> 3. Open about:config and set general.useragent.locale to the correct value
> (e.g. if you install German as de.xpi in step 2, set it to |de|).
> 4. Close Firefox.
> 5. Launch Firefox.
> Actual result:
> If you wait for some seconds on Aurora, the telemetry info bar gets shown at
> the bottom in English while the menu bar and other UI elements are in the
> language set in step 2.
> 6. Open http://chrisdavidmills.github.io/push-api-demo/
> Actual result:
> Doorhanger popup which requests access to Push API is partially in English
> and the other language.

If in step 5 you instead launch Firefox with "firefox -purgecaches" does the problem go away?
Flags: needinfo?(aryx.bugmail)
> If in step 5 you instead launch Firefox with "firefox -purgecaches" does the
> problem go away?
No.
Flags: needinfo?(aryx.bugmail)
(In reply to :Gijs Kruitbosch from comment #9)
> Dave, why wouldn't we have loaded the lang pack when browser.js runs /
> browser.xul loads its stringbundles?

I can't think of a reason, maybe the locale selection is getting messed up somehow, ISTR it uses some odd combination of criteria
Flags: needinfo?(dtownsend)
See Also: → 1005640
See Also: → 1267719
Doorhangers and notifications are working for me on 51. Can you try with a recent build? (Master password is still an issue and is a separate bug)
This works now in 54.0a1 20170207 on Windows 8.1 after the callers of gBrowserBundle got lazyfied.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WORKSFORME
Product: Toolkit → Toolkit Graveyard
You need to log in before you can comment on or make changes to this bug.