Closed Bug 1315887 Opened 4 years ago Closed 2 years ago

Intermittent browser/base/content/test/urlbar/browser_locationBarExternalLoad.js | Test timed out -


(Firefox :: Address Bar, defect, P3)




Firefox 66
Tracking Status
firefox64 --- wontfix
firefox65 --- fixed
firefox66 --- fixed


(Reporter: intermittent-bug-filer, Assigned: mconley)



(Keywords: intermittent-failure, Whiteboard: [stockwell fixed])


(1 file)

Closed: 4 years ago
Resolution: --- → INCOMPLETE
Resolution: INCOMPLETE → ---
Duplicate of this bug: 1444297
Bug 1315887: Temporarilly disable browser_ext_locationBarExternalLoad for surge in intermittents. r=me
Whiteboard: [stockwell disabled]
Unfortunately, it looks like this test is a mess. I can't reproduce this issue locally without rr chaos mode, but when I can, we wind up never finishing the tab switch to the newly-created tab. We wind up waiting indefinitely to receive its layers, and the tab remains blank. (Well, the tab is supposed to remain blank, since the test loads about:blank. But I changed it to load a data: URL instead, and that had the same problem.)

Presumably this started happening after the removal of shims because the event shims send sync RPC messages to propagate events from the content window to the parent <browser>, which affects timings of a lot of things. But since those shims are only ever enabled for tests these days, it means that the timing issues may have been masked in test runs, but still show up in the wild.

I'm going to look into this some more to try to figure out what exactly is going on.
Assignee: nobody → kmaglione+bmo
Priority: -- → P3
This is the only remaining skip-if = true test in urlbar, it would be nice to figure it out
Unassigning kmaglione. Mconley, are you a good candidate for this?
Assignee: kmaglione+bmo → nobody
Flags: needinfo?(mconley)
I looked at this yesterday using rr. I too was able to reproduce this using rr chaos mode.

I think I see what's going wrong. Here:

We're calling loadFunc(), which might send messages to the content process to load a data: URI (in the same content process). Then, we use BrowserTestUtils.waitForContentEvent to send a message to add an event listener in the content process for pageshow.

That's race-y, because the loadFunc() messages might cause the content process to finish loading the data URI and fire pageshow before the pageshow event listener gets sent.

The fastest solution here, I think, is to make sure the pageshow event listener is set before we call loadFunc(). I've got a try push cooking with that solution here:
Assignee: nobody → mconley
Flags: needinfo?(mconley)
Pushed by
Re-enable browser_locationBarExternalLoad.js by making it less race-y. r=mak
Whoops - should have removed the leave-open.
Closed: 4 years ago2 years ago
Keywords: leave-open
Resolution: --- → FIXED
Target Milestone: --- → Firefox 66
Flags: in-testsuite+
Whiteboard: [stockwell disabled] → [stockwell fixed]
You need to log in before you can comment on or make changes to this bug.