It's possible to hit the assertion in ResourceHandle::setDefersLoading() in the following sequence - We create a ResourceLoader (subresource loader) with defersLoading = false - But the ResourceLoader hasn't been added to the subresource list in DocumentLoader and instead is sitting the pending requests list in ResourceLoadScheduler. - Page::setDefersLoading(true) gets called which changes the flag on all subresources except those sitting in the pending requests list. - Later, the request in the pending request list get started which adds them into the subresource list in DocumentLoader - A subsequent call to Page::setDefersLoading() triggers the assert.
<rdar://problem/10963482>
Created attachment 130704 [details] Patch
Comment on attachment 130704 [details] Patch r=me
Committed r110349: <http://trac.webkit.org/changeset/110349>