[Webkit-unassigned] [Bug 117499] New: [GTK] Fix iframe appended as child from DOM bindings

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jun 11 00:44:27 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=117499

           Summary: [GTK] Fix iframe appended as child from DOM bindings
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: WebKit2
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: rego at igalia.com
                CC: xan.lopez at gmail.com, cgarcia at igalia.com


The following code hangs in WebKit2GTK+ (in WK1 it works properly):

    WebKitDOMDocument* document;
    WebKitDOMHTMLElement* body;
    WebKitDOMElement* iframe;

    body = webkit_dom_document_get_body(document);

    iframe = webkit_dom_document_create_element(document, "iframe", NULL);
    webkit_dom_node_append_child(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(iframe), NULL);

The problem seems to be that when the new iframe is added, the WebProcess try to load it and it waits forever for the UIProcess in WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction() when it uses Messages::WebPageProxy::DecidePolicyForNavigationAction().

It seems that there're some communication issues between the WebProcess and the UIProcess, beacause of the UIProcess is never notified in WebPageProxy::decidePolicyForNavigationAction().

WebProcess backtrace:

#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ff4da173e3b in WTF::ThreadCondition::timedWait(WTF::Mutex&, double) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libjavascriptcoregtk-3.0.so.0
#2  0x00007ff4da190489 in WTF::BinarySemaphore::wait(double) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libjavascriptcoregtk-3.0.so.0
#3  0x00007ff4d965e3f6 in CoreIPC::Connection::waitForSyncReply(unsigned long, double, unsigned int) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#4  0x00007ff4d9660267 in CoreIPC::Connection::sendSyncMessage(unsigned long, WTF::PassOwnPtr<CoreIPC::MessageEncoder>, double, unsigned int) ()
   from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#5  0x00007ff4d821b587 in bool CoreIPC::Connection::sendSync<Messages::WebPageProxy::DecidePolicyForNavigationAction>(Messages::WebPageProxy::DecidePolicyForNavigationAction const&, Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply const&, unsigned long, double, unsigned int) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#6  0x00007ff4d82191a5 in WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(void (WebCore::PolicyChecker::*)(WebCore::PolicyAction), WebCore::NavigationAction const&, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#7  0x00007ff4d882a590 in WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#8  0x00007ff4d8803502 in WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>) ()
   from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#9  0x00007ff4d8803c9f in WebCore::FrameLoader::loadWithNavigationAction(WebCore::ResourceRequest const&, WebCore::NavigationAction const&, bool, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>) ()
   from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#10 0x00007ff4d8804868 in WebCore::FrameLoader::loadURL(WebCore::KURL const&, WTF::String const&, WTF::String const&, bool, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::Event>, WTF::PassRefPtr<WebCore::FormState>) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#11 0x00007ff4d8806765 in WebCore::FrameLoader::loadURLIntoChildFrame(WebCore::KURL const&, WTF::String const&, WebCore::Frame*) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#12 0x00007ff4d821786c in WebKit::WebFrameLoaderClient::createFrame(WebCore::KURL const&, WTF::String const&, WebCore::HTMLFrameOwnerElement*, WTF::String const&, bool, int, int) ()
   from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#13 0x00007ff4d8836003 in WebCore::SubframeLoader::loadSubframe(WebCore::HTMLFrameOwnerElement*, WebCore::KURL const&, WTF::String const&, WTF::String const&) ()
   from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#14 0x00007ff4d883630f in WebCore::SubframeLoader::loadOrRedirectSubframe(WebCore::HTMLFrameOwnerElement*, WebCore::KURL const&, WTF::AtomicString const&, bool, bool) ()
   from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#15 0x00007ff4d88370ad in WebCore::SubframeLoader::requestFrame(WebCore::HTMLFrameOwnerElement*, WTF::String const&, WTF::AtomicString const&, bool, bool) ()
   from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#16 0x00007ff4d8625a0c in WebCore::HTMLFrameElementBase::openURL(bool, bool) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#17 0x00007ff4d845a20b in WebCore::updateTreeAfterInsertion(WebCore::ContainerNode*, WebCore::Node*, WebCore::AttachBehavior) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#18 0x00007ff4d845ca8e in WebCore::ContainerNode::appendChild(WTF::PassRefPtr<WebCore::Node>, int&, WebCore::AttachBehavior) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#19 0x00007ff4d84c01c7 in WebCore::Node::appendChild(WTF::PassRefPtr<WebCore::Node>, int&, WebCore::AttachBehavior) () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25
#20 0x00007ff4d95fe9c0 in webkit_dom_node_append_child () from /home/rego/work/WebKit/WebKitBuild/Release/.libs/libwebkit2gtk-3.0.so.25

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list