ASSERTION FAILED: !m_frame->page()->defersLoading() || InspectorInstrumentation:...
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jul 2016 16:29:06 +0000 (16:29 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jul 2016 16:29:06 +0000 (16:29 +0000)
commit4b7648d69ee6177b5e14206ac9f91e1844a37b55
tree92defddfe853723fd1a6a7f2b71bd99a367b1f26
parent9c0cf8645b64933ae8a7bbade27c48ef5dc10829
ASSERTION FAILED: !m_frame->page()->defersLoading() || InspectorInstrumentation::isDebuggerPaused(m_frame)
https://bugs.webkit.org/show_bug.cgi?id=160193

Reviewed by Michael Catanzaro.

This is happening in the GTK+ Debug bot when running test loader/load-defer.html (note that the assert is inside
a !USE(CF) block).
The test is creating an iframe with load deferred, then in a timeout it disables the deferred load and checks
that the load actually happens. What happens is that the initial empty document is what calls
DocumentLoader::finishedLoading() when load is still deferred. The onload handler is not called because load
events are disabled for the initial empty document in SubframeLoader::loadSubframe(), but
DocumentLoader::finishedLoading() is called unconditionally from maybeLoadEmpty(). I think it's fine to call
DocumentLoader::finishedLoading() for the initial empty document even when load is deferred, so we can simply
update the assert to handle that case.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading): Do not assert if called for the initial empty document when load is
deferred.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@203723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/loader/DocumentLoader.cpp