"ASSERTION: No Document Request!" with <iframe>, <video>, <svg:use>

RESOLVED FIXED in Firefox 50

Status

()

RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: jruderman, Assigned: smaug)

Tracking

(Blocks: 1 bug, {assertion, testcase})

Trunk
mozilla50
assertion, testcase
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox50 fixed)

Details

Attachments

(3 attachments)

(Reporter)

Description

2 years ago
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
(Reporter)

Comment 1

2 years ago
Created attachment 8766109 [details]
stack
smaug may know what's up here.

http://searchfox.org/mozilla-central/source/uriloader/﷒0
Flags: needinfo?(bugs)
ok, so because of flushing in nsDocLoader::DocLoaderIsEmpty we re-enter the method and end up clearing document request.
Blocks: 477880
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
Flags: needinfo?(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+
(Reporter)

Comment 6

2 years ago
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.
Flags: needinfo?(dholbert)
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.
Flags: needinfo?(dholbert)

Comment 9

2 years ago
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/3fc0469634a5
don't try to notify about page load of already stopped page, r=khuey

Comment 10

2 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/3fc0469634a5
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.