[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