Fix XPConnect browser mochitests
Categories
(Core :: XPConnect, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox70 | --- | fixed |
People
(Reporter: mccr8, Assigned: mccr8)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
There are two Mochitests in js/xpconnect/tests/browser, which basically work the same way. They open a page, create some references to things in that page, then navigate to a new URL to cause a window destroy on the original page, then check that the references created earlier have been destroyed appropriately.
The navigation they do is this: content.location = "http://example.org/";
If you run these tests with Fission, things go okay for awhile, but eventually the test kind of hangs, with this error: JavaScript error: resource://testing-common/content-task.js, line 66: NS_ERROR_ILLEGAL_VALUE
This is line 66: sendAsyncMessage("content-task:complete", {
Kris figured out that what is happening is that after the cross-process navigation happens, the message manager in the original content process (where this content-task.js script is running) is torn down, and then we hit an error inside message manager code, and NS_ERROR_NULL_POINTER is the same as NS_ERROR_ILLEGAL_VALUE, so we get the confusing error message. I'm sure a bunch of tests will break with that error message, so that's something to keep an eye out for.
This might be tricky if these tests were doing something interesting with the page they navigate to, but the page is really just arbitrary, so changing them to navigate to http://mochi.test:8888/
works.
Assignee | ||
Comment 1•6 years ago
|
||
These tests both load a page, create some chrome reference to it, then
navigate to another page to cause a window close on the original page,
then check to make sure the references to the original page have gone
away.
With Fission, if the navigation is cross-process, then the message
manager gets torn down in the original process where the browser test
is running, and the sendAsyncMessage call in content-task.js fails
with the cryptic error NS_ERROR_ILLEGAL_VALUE.
This can be fixed by making the navigation not be cross-origin. The
test only wants the original pages to be torn down. The origin of the
new page doesn't matter.
Assignee | ||
Comment 3•6 years ago
|
||
I filed bug 1572872 about making the message manager error less confusing.
Comment 4•6 years ago
|
||
bugherder |
Updated•5 years ago
|
Description
•