I think I have found an inconsistency in TB's pref setting during
mochitest regarding e10s.
The gory detail is in
https://bugzilla.mozilla.org/show_bug.cgi?id=1629433#c10
Major find (excerpt from the above bugzilla.)
--- begin quote ---
1) Dynamically generated user.js files during tests of C-C TB mochitest
execution, contain conflicting stetting.
pref("browser.tabs.remote.autostart", {true|false});
The value is either true or false. Not consistent. In mochitest of C-C
TB, there may be a few very browser-like test. In those cases,
|browser.tabs.remote.autostart| can be true? However, if we ALWAYS need
to set the value for false for C-C TB mochitest,
>> // No e10s in Thunderbird for now.
>> pref("browser.tabs.remote.autostart", false); <=== This
we may be in a big trouble.
I observe that there are multiple lines to set
"browser.tabs.remote.autostart" in a user.js with different
setting. Of course, the last one sets the used value. Inquiring mind
wants to know how the setting is composed (presumably concatenate some
settings prepackaged in user.js files in test file directories? I have
noticed that there are user.js files in test directory. See (3)
below.) Clear description of how the run-time user.js is created for
each test during c-c TB mochitest run would be desirable.
In any case, I DID find cases where sub-tests (albeit web
browser-oriented?) run with a user.js with
|pref("browser.tabs.remote.autostart", true);| which may not sit well
for C-C thunderbird binary.
I have a nagging feeling that this bad setting may/could be one of the
causes of the failure to run valgrind because we need more than 1500+
threads to run the C-C TB mochitest(!)
(2) user.js file under MOZ_OBJ/temp,
/NEW-SSD/moz-obj-dir/objdir-tb3/temp/user.js, does NOT set
|pref("browser.tabs.remote.autostart", false);|
I wonder if this user.js in MOZ_OBJ directory is used or not during C-C
mochitest. If it is used, I think we are in a big trouble since it does
not set the value to false.
(3) There are a few |user.js| files with conflicting settings in the
test directories. Some set the pref to false, but some set to true.
I hope they are used appropriately. Since the C-C mochitest works more
or less, I believe they are used correctly, but a clear
documentation/explanation of how each is used and how each test creates
user.js dynamically from the prepackaged user.js for TB
mochitest would be desirable.
--- end quote ---
So if the testing of web browser function in C-C TB mochitest runs with
e10s enabled, then it is not testing the real world usage because
e10s is disabled for TB usually.
(OTOH, it is hard to believe that if TB needs to disable e10s, the
built-in web renderer in TB can run with e10s enabled without disrupting
the behavior of the rest of the code. Something is screwed up in
dynamically generated mochitest user.js )
I hope someone familiar with C-C TB mochitest investigates this and
figures if the current state of the affairs is correct or not.
Chiaki