If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

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

RESOLVED FIXED in Firefox 50

Status

()

Core
Document Navigation
RESOLVED FIXED
a year ago
a year ago

People

(Reporter: Jesse Ruderman, 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

a year 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

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

http://searchfox.org/mozilla-central/source/uriloader/base/nsDocLoader.cpp#695
Flags: needinfo?(bugs)
(Assignee)

Comment 3

a year ago
ok, so because of flushing in nsDocLoader::DocLoaderIsEmpty we re-enter the method and end up clearing document request.
(Assignee)

Updated

a year ago
Blocks: 477880
(Assignee)

Comment 4

a year ago
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

a year 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.
(Assignee)

Comment 7

a year ago
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

a year 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

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/3fc0469634a5
Status: NEW → RESOLVED
Last Resolved: a year 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.