Bug 160193

Summary: ASSERTION FAILED: !m_frame->page()->defersLoading() || InspectorInstrumentation::isDebuggerPaused(m_frame)
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: Page LoadingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, beidson, bugs-noreply, cdumez, commit-queue, darin, japhet
Priority: P2 Keywords: Gtk, LayoutTestFailure
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch mcatanzaro: review+

Description Carlos Garcia Campos 2016-07-26 05:05:36 PDT
This is happening in the GTK+ Debug bot when running test loader/load-defer.html (note that the assert is inside an !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.
Comment 1 Carlos Garcia Campos 2016-07-26 05:05:50 PDT
STDERR: ASSERTION FAILED: !m_frame->page()->defersLoading() || InspectorInstrumentation::isDebuggerPaused(m_frame)
STDERR: ../../Source/WebCore/loader/DocumentLoader.cpp(401) : void WebCore::DocumentLoader::finishedLoading(double)
STDERR: 1   0x7f73c3136c2f /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x7f73c3136c2f]
STDERR: 2   0x7f73ca8dd34d /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::DocumentLoader::finishedLoading(double)+0x79) [0x7f73ca8dd34d]
STDERR: 3   0x7f73ca8e25d4 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::DocumentLoader::maybeLoadEmpty()+0x35a) [0x7f73ca8e25d4]
STDERR: 4   0x7f73ca8e27aa /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::DocumentLoader::startLoadingMainResource()+0x100) [0x7f73ca8e27aa]
STDERR: 5   0x7f73ca8ffed7 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FrameLoader::init()+0x12d) [0x7f73ca8ffed7]
STDERR: 6   0x7f73c9a56466 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Frame::init()+0x1e) [0x7f73c9a56466]
STDERR: 7   0x7f73c9a5348b /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::WebFrame::createSubframe(WebKit::WebPage*, WTF::String const&, WebCore::HTMLFrameOwnerElement*)+0x1f7) [0x7f73c9a5348b]
STDERR: 8   0x7f73c9a251e7 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::WebFrameLoaderClient::createFrame(WebCore::URL const&, WTF::String const&, WebCore::HTMLFrameOwnerElement*, WTF::String const&, bool, int, int)+0x53) [0x7f73c9a251e7]
STDERR: 9   0x7f73ca94aa20 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::SubframeLoader::loadSubframe(WebCore::HTMLFrameOwnerElement&, WebCore::URL const&, WTF::String const&, WTF::String const&)+0x1cc) [0x7f73ca94aa20]
STDERR: 10  0x7f73ca94a77a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::SubframeLoader::loadOrRedirectSubframe(WebCore::HTMLFrameOwnerElement&, WebCore::URL const&, WTF::AtomicString const&, WebCore::LockHistory, WebCore::LockBackForwardList)+0x18a) [0x7f73ca94a77a]
STDERR: 11  0x7f73ca949312 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::SubframeLoader::requestFrame(WebCore::HTMLFrameOwnerElement&, WTF::String const&, WTF::AtomicString const&, WebCore::LockHistory, WebCore::LockBackForwardList)+0x194) [0x7f73ca949312]
STDERR: 12  0x7f73ca66cd4d /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::HTMLFrameElementBase::openURL(WebCore::LockHistory, WebCore::LockBackForwardList)+0xf9) [0x7f73ca66cd4d]
STDERR: 13  0x7f73ca66d106 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::HTMLFrameElementBase::setNameAndOpenURL()+0x7a) [0x7f73ca66d106]
STDERR: 14  0x7f73ca66d1d3 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::HTMLFrameElementBase::finishedInsertingSubtree()+0x89) [0x7f73ca66d1d3]
STDERR: 15  0x7f73ca3a2224 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::ContainerNode::notifyChildInserted(WebCore::Node&, WebCore::ContainerNode::ChildChangeSource)+0x17a) [0x7f73ca3a2224]
STDERR: 16  0x7f73ca3a45c5 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::ContainerNode::updateTreeAfterInsertion(WebCore::Node&)+0x61) [0x7f73ca3a45c5]
STDERR: 17  0x7f73ca3a375a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::ContainerNode::appendChild(WebCore::Node&, int&)+0x29c) [0x7f73ca3a375a]
STDERR: 18  0x7f73ca48d38e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Node::appendChild(WebCore::Node&, int&)+0x5a) [0x7f73ca48d38e]
STDERR: 19  0x7f73ca0f1098 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::JSNode::appendChild(JSC::ExecState&)+0xa8) [0x7f73ca0f1098]
STDERR: 20  0x7f73cb6ce227 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::jsNodePrototypeFunctionAppendChild(JSC::ExecState*)+0x141) [0x7f73cb6ce227]
STDERR: 21  0x7f73721fe028 [0x7f73721fe028]
Comment 2 Carlos Garcia Campos 2016-07-26 05:09:04 PDT
Created attachment 284578 [details]
Patch
Comment 3 Carlos Garcia Campos 2016-07-26 09:30:27 PDT
Committed r203723: <http://trac.webkit.org/changeset/203723>