Created attachment 8766108 [details] testcase ###!!! ASSERTION: No Document Request!: 'mDocumentRequest', file uriloader/base/nsDocLoader.cpp, line 695 ###!!! ASSERTION: Firing OnStateChange(...) notification with a NULL request!: 'aRequest', file uriloader/base/nsDocLoader.cpp, line 1248
smaug may know what's up here. http://searchfox.org/mozilla-central/source/uriloader/0
ok, so because of flushing in nsDocLoader::DocLoaderIsEmpty we re-enter the method and end up clearing document request.
Created attachment 8766585 [details] [diff] [review] docloader_unusual_reentrancy.diff https://treeherder.mozilla.org/#/jobs?repo=try&revision=4dda0bdc51eb0e9d69b4f741af752fb2805f8ccc I went through couple of other options, but I think this quick-and-dirty is actually the best and safest. The re-entrancy happens when we after layout flush run script runners and stop frameloader's docshell.
Assignee: nobody → bugs
Attachment #8766585 - Flags: review?(khuey)
Comment on attachment 8766585 [details] [diff] [review] docloader_unusual_reentrancy.diff Review of attachment 8766585 [details] [diff] [review]: ----------------------------------------------------------------- Ok ... I guess.
Attachment #8766585 - Flags: review?(khuey) → review+
Is there a more direct way to test this kind of thing? The fragile setTimeout cascade was hard to work with and won't make a reliable regression test.
perhaps dholbert might be able to comment about that, given that this is about svg:use, which does some rather unusual stuff in layout.
Sorry, I haven't had a recent enough interaction with the <use> mechanics (and the flushes / loader stuff involved here) to have a solid suggestion for comment 6.
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/integration/mozilla-inbound/rev/3fc0469634a5 don't try to notify about page load of already stopped page, r=khuey
Status: NEW → RESOLVED
Last Resolved: 2 years ago
status-firefox50: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
You need to log in before you can comment on or make changes to this bug.