Closed Bug 1488934 Opened 6 years ago Closed 6 years ago

Bricked Firefox when language pack is updated while the browser is open

Categories

(Toolkit :: Add-ons Manager, defect, P1)

62 Branch
defect

Tracking

()

VERIFIED FIXED
mozilla64
Tracking Status
firefox62 + verified
firefox63 --- fixed
firefox64 --- fixed

People

(Reporter: mkaply, Assigned: mkaply)

Details

Attachments

(3 files, 4 obsolete files)

If a Firefox language pack is updated while Firefox is open and then you restart Firefox, you end up with a yellow <window screen and Firefox is bricked.

The jsconsole comes up blank as well so you can't read it.

So far I've only been able to recreate this with acer builds. I'm working on recreating it elsewhere.

For now, I want to turn off acer update (acer-001 and acer-002).
Also, I get 
1536186800603	addons.xpi	WARN	Ignoring distribution: not an XPI: C:\Program Files (x86)\Mozilla Firefox\distribution
\extensions\partnerdefaults@mozilla.com
when starting up win32 62.0 en-US acer-002. See also bug 1488799.
Yep. They have unpacked extensions preloaded on their machines. I've let them know about that.

At first, I thought it was the source of this problem but it doesn't seem to be.

My current plan is to build a debug version of 62 release so I can see what exactly is erroring out on the console.
Mike, would it be fair to assign this to you?
Flags: needinfo?(mozilla)
Priority: -- → P1
> Mike, would it be fair to assign this to you?

Probably, but unfortunately I have been unable to recreate it again since I had it happen twice.

I'm still trying.

Right now we've turned off updates to Acer.
Flags: needinfo?(mozilla)
I've been able to recreate and have a sample profile that is broken. Scenario is:

Install 58 zh-CN with unpacked langpack (that's how Acer preloads)
Upgrade directly to 62.
Wait for Firefox to get the langpack upgrade.
Restart.
Yellow screen.

You have to have a distribution.ini file from Acer to recreate.
Attached file distribution.ini (obsolete) —
Information on recreation so this can be passed to the addons team.

This is Windows only.

It recreates with Firefox 62 release.

Create a distribution directory where the Firefox executable is located and put the attached distribution.ini into that directory.

Rename your AppData/Local/Mozilla and AppData/Roaming/Mozilla directories.

Unzip 

https://www.dropbox.com/s/2fwlxu4apak23d7/acer_bad_profile.zip?dl=0

into your Users\USERNAME\AppData directory 

Start Firefox. You should see a yellow window with <window id="main-window"
Attached file acer_bad_profile.zip (obsolete) —
Attachment #9007069 - Attachment description: Information on recreation so this can be passed to the addons team. This is Windows only. It recreate with Firefox 62 release. Create a distribution directory where the Firefox executable is locate → distribution.ini
Attachment #9007069 - Attachment mime type: application/octet-stream → text/plain
Attached file Mac profile that fails (obsolete) —
This is zipped in the profile dir, so you'll need to add an entry to profiles.ini

db2jrits.Acer Test
I've been able to reproduce this on a debug build.

We are not properly switching the chrome registration from unpacked to packed. Errors are below:

Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/browser/chrome/zh-CN/locale/branding/brand.properties
++DOCSHELL 0x123511000 == 2 [pid = 78662] [id = {5a62ea88-b37e-8b45-84f6-74756aa91051}]
++DOMWINDOW == 3 (0x121ea4600) [pid = 78662] [serial = 3] [outer = 0x0]
++DOMWINDOW == 4 (0x119da8000) [pid = 78662] [serial = 4] [outer = 0x121ea4600]
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/intl.properties
[78662, Main Thread] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file /Users/michaelkaply/Projects/mozilla-release/dom/media/CubebUtils.cpp, line 351
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/browser/chrome/zh-CN/locale/branding/brand.dtd
[78662, Main Thread] WARNING: Failed to open external DTD: publicId "" systemId "chrome://branding/locale/brand.dtd" base "chrome://browser/content/hiddenWindow.xul" URL "chrome://branding/locale/brand.dtd": file /Users/michaelkaply/Projects/mozilla-release/parser/htmlparser/nsExpatDriver.cpp, line 588
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout/xmlparser.properties
[78662, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file /Users/michaelkaply/Projects/mozilla-release/parser/htmlparser/nsExpatDriver.cpp, line 715
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/browser/chrome/zh-CN/locale/branding/brand.dtd
[78662, Main Thread] WARNING: Failed to open external DTD: publicId "" systemId "chrome://branding/locale/brand.dtd" base "chrome://browser/content/browser.xul" URL "chrome://branding/locale/brand.dtd": file /Users/michaelkaply/Projects/mozilla-release/parser/htmlparser/nsExpatDriver.cpp, line 588
[78662, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file /Users/michaelkaply/Projects/mozilla-release/parser/htmlparser/nsExpatDriver.cpp, line 715
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/fallbackMenubar.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/intl.css
[78662, Main Thread] WARNING: NS_ENSURE_TRUE(root) failed: file /Users/michaelkaply/Projects/mozilla-release/layout/base/nsDocumentViewer.cpp, line 3533
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/css.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/xbl.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/xul.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout_errors.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout/HtmlForm.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/printing.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/dom/dom.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout/htmlparser.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/svg/svg.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/commonDialogs.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/mathml/mathml.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/security/security.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/necko/necko.properties
console.debug: 
  studyUtils has config and variation.name: noshow.
      Ready to send telemetry
console.debug: 
  info {"studyName":"searchNudgesExperiment","addon":{"id":"search-nudges@shield.mozilla.org","version":"1.8.2"},"variation":{"name":"noshow","weight":1},"shieldId":""}
console.debug: 
  Feature start
++DOCSHELL 0x126906800 == 3 [pid = 78662] [id = {5b2f24a3-4d2b-7241-9ab1-03178d3ccf4f}]
++DOMWINDOW == 5 (0x12705d400) [pid = 78662] [serial = 5] [outer = 0x0]
++DOMWINDOW == 6 (0x12734a000) [pid = 78662] [serial = 6] [outer = 0x12705d400]
++DOMWINDOW == 7 (0x123a98800) [pid = 78662] [serial = 7] [outer = 0x12705d400]
[Parent 78662, Main Thread] WARNING: Need TabChild to get the nativeWindow from!: file /Users/michaelkaply/Projects/mozilla-release/widget/PuppetWidget.cpp, line 1212
++DOCSHELL 0x10866f000 == 1 [pid = 78663] [id = {032eeb0f-d195-a045-aab3-25418f9ac260}]
++DOMWINDOW == 1 (0x104960c00) [pid = 78663] [serial = 1] [outer = 0x0]
[Child 78663, Main Thread] WARNING: Fallback to BasicLayerManager: file /Users/michaelkaply/Projects/mozilla-release/dom/ipc/TabChild.cpp, line 2843
++DOMWINDOW == 2 (0x10a770400) [pid = 78663] [serial = 2] [outer = 0x104960c00]
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/browser/chrome/zh-CN/locale/branding/brand.properties
[Child 78663, Main Thread] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file /Users/michaelkaply/Projects/mozilla-release/dom/media/CubebUtils.cpp, line 351
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/intl.properties
++DOMWINDOW == 3 (0x10a77f400) [pid = 78663] [serial = 3] [outer = 0x104960c00]
JavaScript error: resource://gre/modules/Schemas.jsm, line 1181: Error: Internal error: Namespace study has invalid type property "defaultReturn" in type "{"defaultReturn":{"firstRunTimestamp":1523968204184,"variation":"styleA"},"name":"onReady","parameters":[{"name":"studyInfo","type":"object"}],"type":"function"}"
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/css.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/xbl.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/xul.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout_errors.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout/HtmlForm.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/printing.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/dom/dom.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout/htmlparser.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/svg/svg.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/commonDialogs.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/mathml/mathml.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/security/security.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/necko/necko.properties
2018-09-07 07:55:53.349 plugin-container[78663:11014941] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9037, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/browser/chrome/zh-CN/locale/branding/brand.properties
[Child 78664, Main Thread] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file /Users/michaelkaply/Projects/mozilla-release/dom/media/CubebUtils.cpp, line 351
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/css.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/xbl.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/xul.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout_errors.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout/HtmlForm.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/printing.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/dom/dom.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/layout/htmlparser.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/svg/svg.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/commonDialogs.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/mathml/mathml.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/security/security.properties
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/necko/necko.properties
2018-09-07 07:55:54.107 plugin-container[78664:11015008] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8733, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
--DOMWINDOW == 6 (0x12734a000) [pid = 78662] [serial = 6] [outer = 0x0] [url = about:blank]
1536324982000	addons.xpi-utils	DEBUG	Starting async load of XPI database /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions.json
1536324982001	addons.xpi-utils	DEBUG	Finished async read of XPI database, parsing...
1536324982009	addons.xpi-utils	DEBUG	Successfully read XPI database
1536324982052	addons.xpi-utils	WARN	Add-on abb-acer@amazon.com is not correctly signed.
1536324982054	addons.xpi-utils	WARN	Add-on partnerdefaults@mozilla.com is not correctly signed.
--DOMWINDOW == 2 (0x10a770400) [pid = 78663] [serial = 2] [outer = 0x0] [url = about:blank]
1536324982155	addons.xpi-utils	DEBUG	XPI Database saved, setting schema version preference to 27
Chrome file doesn't exist: /Users/michaelkaply/Projects/mozilla-release/obj-x86_64-apple-darwin16.7.0/tmp/profile-default/extensions/chrome/zh-CN/locale/zh-CN/global/intl.properties
Component: General → Add-ons Manager
Product: Firefox → Toolkit
The current theory is that we're not properly handling updates from unpacked to packed extensions (specifically, we're not updating the addon's path property in XPIStates which is stored on disk in addonStartup.json.lz4).
The only hitch is that mkaply reports this is intermittent (ie, sometimes he's able to update to a packed langpack successfully).

I'll write a quick patch for the issue described above, adding a test will take a bit longer.
The reason this is distro specific is because distros moved from legacy to WebExtensions but didn't switch to packing their extensions.

In the real world, a WebExtension can never be unpacked.
Attached patch first patch (untested) (obsolete) — Splinter Review
Assignee: nobody → aswan
Status: NEW → ASSIGNED
I didn't actually mean to assign myself, thanks bzexport
Assignee: aswan → nobody
Status: ASSIGNED → NEW
Assignee: nobody → mozilla
The intermittency seems related to other addons being installed as well (maybe system addons or shield addons).

So the correct way to recreate is to let the browser sit for a bit and everything seems to get updated except for the language pack.

Then close. Then restart. Then update language pack.

In my case, once "User search study 1.8.2 search-nudges@shield.mozilla.org" comes in, I restart the browser and then update the language pack and it fails.
Hurray, recreation scenario.

Setup a Firefox 58 and a Firefox 62 as both being Acer builds using distribution info.
Start Firefox 58
Close Firefox 58.
Start Firefox 62
Wait for full startup.
Close Firefox 62
Start Firefox 62. 
Right click, update Language pack.
Close Firefox 62
Open Firefox 62 - bricked.

The key is closing it once before you update the language pack.
Comment on attachment 9008143 [details]
Bug 1488934. Handle unpacked to packed migration.

Kris Maglione [:kmag] has approved the revision.
Attachment #9008143 - Flags: review+
Attached file Distribution directory
OK, here's complete information on how to create.

You need a copy of Firefox 58 and a copy of Firefox 62. The reason it has to be 58 is because that's the langpack in this distribution.zip.

For both 58 and 62, unzip the attached distribution directory where the EXE is on Windows or in Firefox.app/Contents/Resources on Mac.

You must put the distribution directory in both installs.

Start Firefox 58. Verify that it is in Chinese.

Close Firefox 58.

Start Firefox 62 with the same profile you used for 58. You should see a yellow information bar at the top about add-ons being disabled.

Close Firefox 62.

Start Firefox 62.

Go to about:addons

Click on Languages

Right click on the zh-CN langpack and select Find Updates.

After the update is complete, restart the browser.

You should get the yellow screen.
Attachment #9007069 - Attachment is obsolete: true
Attachment #9007078 - Attachment is obsolete: true
Attachment #9007085 - Attachment is obsolete: true
Attachment #9007329 - Attachment is obsolete: true
Pushed by mozilla@kaply.com:
https://hg.mozilla.org/integration/autoland/rev/34aa201bb6a8
Handle unpacked to packed migration. r=kmag
Now that is is fully understood, are there any other partners we should be blocking updates for ?
(In reply to Nick Thomas [:nthomas] (UTC+12) from comment #21)
> Now that is is fully understood, are there any other partners we should be
> blocking updates for ?

Luckily no.

The other partners that have this problem distribute updates to their add-ons, so they would have already received packed updates.

I've already packed their add-ons for future distributions.

The main reason this was a problem was the langpacks because they don't get updated until the browser is updated.
https://hg.mozilla.org/mozilla-central/rev/34aa201bb6a8
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Comment on attachment 9008143 [details]
Bug 1488934. Handle unpacked to packed migration.

Approval Request Comment
[Feature/Bug causing the regression]: Unpacked extension removal.
[User impact if declined]: In certain cases, unpacked extensions won't be migrated to packed extensions and Firefox is unusable.
[Is this code covered by automated tests?]: No
[Has the fix been verified in Nightly?]: No
[Needs manual test from QE? If yes, steps to reproduce]: In bug
[List of other uplifts needed for the feature/fix]: None
[Is the change risky?]: No
[Why is the change risky/not risky?]: Straightforward one line fix.
[String changes made/needed]:
Attachment #9008143 - Flags: approval-mozilla-release?
Attachment #9008143 - Flags: approval-mozilla-beta?
Flags: qe-verify+
Comment on attachment 9008143 [details]
Bug 1488934. Handle unpacked to packed migration.

Approved for 63 beta 6 as we need to make sure the issue is fixed before uplifting it to release
Attachment #9008143 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
I think there is a missing step in Comment 19. I copied the Distribution folder in the Path where the exe is and the language is not changing. Can you please help me out with that?
Flags: needinfo?(mozilla)
Try setting intl.locale.requested in about:config to zh-CN to enable Chinese.
The language is set in distribution.ini.

Make sure you are creating a new profile. Distribution.ini is cached, so if you copy over the distribution directory and use an existing profile, it won't be read.

Do you see the zh-CN langpack in about:Addons?
Flags: needinfo?(mozilla)
I created intl.locale.requested preference set to zh-CN and opened a new profile after I copied the distribution.ini, but unfortunately still didn't succeed. I searched in about:addons and did not found any language pack. Am I missing something?
The language pack should get installed if you create a new profile and have copied the distribution.ini information.
We're not going to be able to verify this on beta.

We need to old langpack to update to a new langpack in order to recreate, but beta langpacks don't update because they aren't on AMO.

So we can't build a recreation scenario for this.
Comment on attachment 9008143 [details]
Bug 1488934. Handle unpacked to packed migration.

dot release driver for 62.0.2, approved for uplift to m-r.
Attachment #9008143 - Flags: approval-mozilla-release? → approval-mozilla-release+
I didn't manage to reproduce this issue on Firefox 62.0.2, Windows 10 neither. 

I tried the same steps from Comment 19, but instead of using the distribution folder attachment I downloaded the language pack from https://addons.mozilla.org/en-US/firefox/ and didn't manage to reproduce.

Is there another way of reproducing this on 62 or content from Comment 32 is true for 62 also?
Flags: needinfo?(mozilla)
To reproduce this, you have to move from an unpacked language pack to a language pack, and it has to be unpacked in the distribution directory.
Flags: needinfo?(mozilla)
I managed to reproduce in Windows 10 with the steps in comment 19, but I'll detail them here:
1. Download Firefox Release v58.0 x32.
2. Apply the acer distribution folder to the build:
   a. Copy the distribution folder into the browser's build folder.
   b. Modify the distribution.ini file from the distribution folder as follow:
     - general.useragent.locale="en-US" ->to-> general.useragent.locale="zh-CN"
     - intl.locale.requested="en-US"    ->to-> intl.locale.requested="zh-CN"
3. Open Firefox v58.0 using a profile that you will remember.
4. Notice that the language used is Chinese.
5. Close Firefox 58.
6. Start Firefox v62.0 with the same profile used in Firefox 58.
7. Notice the yellow information bar at the top, notifying the user that an add-on is disabled.
8. Close Firefox 62.
9. Start Firefox 62 again.
10. Go to about:addons, languages section.
11. Update the Chinese language pack.
12. Restart browser.
Actual: A yellow screen is displayed as Firefox did not start as expected.
Expected: Firefox starts normally.

I have managed to reproduce it with Firefox Release v85.0 and v62.0. How should I proceed in order to verify it?
Flags: needinfo?(mozilla)
I have repeated the steps above with Firefox Release v58.0 and Firefox Release v62.0.3. The issue is verified in the latest release version of Firefox. The browser started normally after step 12 and the Chinese language was applied correctly.

Considering all the above, I am setting the firefox62 tag as verified and I am removing the qe-verify tag.
@Kaply: Please set the bug's general status as verified if this verification is sufficient. 
If not, please provide more details on how we could verify the fix in firefox63 and firefox64.
Flags: qe-verify+
Wouldn't the same STR apply for the Fx63 RC build? Not sure about 64, though.
Considering comment 32, I think not. Maybe for firefox64, in which case the STR would definitely not apply.
Considering that Mike Kaply is on PTO at the moment, is there anyone else that could have an opinion about this?
This is perfect.
Status: RESOLVED → VERIFIED
Flags: needinfo?(mozilla)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: