Closed Bug 772307 Opened 8 years ago Closed 8 years ago

B2G user.js needs 'browser.manifestURL' pref when running mochitests

Categories

(Testing :: Mochitest, defect)

x86
Linux
defect
Not set

Tracking

(blocking-basecamp:+)

RESOLVED FIXED
mozilla16
blocking-basecamp +

People

(Reporter: jgriffin, Assigned: ahal)

References

Details

Attachments

(3 files)

Attached file logcat
When running mochitests on B2G, we copy a test profile that contains some extensions to /data/local/tests/profile, add a custom user.js to /data/local, and update the profile pointer in /data/b2g/mozilla/profiles.ini.  We then restart B2G.

Prior to June 26 (the date on which the emulator stopped working due to the recently-fixed GL issue), this worked and mochitests would start.  Currently, it does not work.  In logcat, we see:

E/GeckoConsole(  400): [JavaScript Error: "NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getCharPref]" {file: "chrome://browser/content/shell.js" line: 81}]

This line in shell.js attempts to read the browser.homescreenURL pref, which is set in user.js.  User.js does exist in /data/local/user.js, and does contain that pref, but for some reason it isn't read.  This causes shell.js to die before it creates the content frame, which prevents Marionette from loading, which prevents us from being able to start mochitest.

To reproduce, go to objdir-gecko/_tests/testing/mochitest, and execute the command:

python runtestsb2g.py --emulator arm --b2gpath /path/to/B2G/repo/ --xre-path /path/to/directory/containing/desktop/xpcshell

This problem also seems to affect the otoro device, see bug 771725.  This blocks us from being able to run mochitest or reftest on B2G.

Full logcat attached.

Other bugs which may be related:  bug 772238, bug 772237
blocking-basecamp: --- → ?
Summary: B2G fails to read user.js after restarting with new profile → B2G fails to read user.js after restarting with new profile; unable to run mochitests on B2G
We don't usually block on tests, but this is the whole test harness.
blocking-basecamp: ? → +
This blocks reftests as well.
This occurs on the otoro device as well as the emulator.
It turns out that the line numbers between the version of shell.js in m-c and the version that b2g ends up using are off by 4. It should be line 85 instead of line 81 (both lines coincidentally have a call to getCharPref(), which was confusing).

At any rate, this has nothing to do with reading user.js and is caused by a change introducing the 'browser.manifestURL' pref which was missing from the synthesized user.js files in mochitest and reftest.

We'll need to add this pref to the prefs.js created by mochitest (reftest isn't checked in yet).
Component: General → Mochitest
Product: Boot2Gecko → Testing
Summary: B2G fails to read user.js after restarting with new profile; unable to run mochitests on B2G → B2G user.js needs 'browser.manifestURL' pref when running mochitests
Attachment #641298 - Flags: review?(jgriffin)
Comment on attachment 641298 [details] [diff] [review]
Patch 1.0 - Add pref to b2gautomation

Review of attachment 641298 [details] [diff] [review]:
-----------------------------------------------------------------

Thanks!
Attachment #641298 - Flags: review?(jgriffin) → review+
http://hg.mozilla.org/mozilla-central/rev/46804c31366b
Assignee: nobody → ahalberstadt
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla16
You need to log in before you can comment on or make changes to this bug.