It's hard to say why.
Created attachment 174223 [details]
The issue here was actually a timeout due to chromium http://src.chromium.org/viewvc/chrome?view=rev&revision=167537. WebViewHost's d'tor navigates the page (synchronously) to about:blank:
one consequence of which is disabling compositing mode, which triggers this finishAllRendering() call:
which attempts to make a synchronous call to the compositor thread. Since the compositor thread is destroyed first, this call went nowhere and the main thread simply sat blocked until it was killed by the harness.
I think the reason http://src.chromium.org/viewvc/chrome?view=rev&revision=167537 tickled this was because of some subtleties in chromium's thread shutdown where the thread was living for longer, but I'm still tracking down exactly how this happened.
This patch also makes TestShell's behavior more similar to chrome's, where the compositor thread always outlives WebView instances.
Comment on attachment 174223 [details]
R=me. This really needs a better comment.
(In reply to comment #4)
> (From update of attachment 174223 [details])
> R=me. This really needs a better comment.
I think this change needs a meme.
Created attachment 174246 [details]
Patch for landing
Comment on attachment 174246 [details]
Patch for landing
Clearing flags on attachment: 174246
Committed r134667: <http://trac.webkit.org/changeset/134667>
All reviewed patches have been landed. Closing bug.
Is there a way to add asserts instead of just a comment?
They aren't passing yet, although I think r134667 was a solid bug fix and should cut down on flaky crashes. There's one more race that https://codereview.chromium.org/11363254 should fix. Leaving open until it goes green...
Fixed by http://src.chromium.org/viewvc/chrome?view=rev&revision=168037, removed failing expectation in http://trac.webkit.org/changeset/134857