[Webkit-unassigned] [Bug 26969] New: Fix ASSERT in WebCore::DocumentThreadableLoader::didFail

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Jul 4 12:28:14 PDT 2009


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

           Summary: Fix ASSERT in
                    WebCore::DocumentThreadableLoader::didFail
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: WebCore Misc.
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: robert at roberthogan.net


Created an attachment (id=32259)
 --> (https://bugs.webkit.org/attachment.cgi?id=32259)
backtrace

Following the instructions at  http://meyerhome.net/~ben/frametest/ (see
https://bugs.webkit.org/show_bug.cgi?id=25283) results in hitting an assert in
WebCore::DocumentThreadableLoader::didFail.

The problem is that DocumentThreadableLoader calls
WebCore::SubresourceLoader::create with a request containing an "OPTIONS"
httpMethod() (set in
WebCore::XMLHttpRequest::makeCrossOriginAccessRequestWithPreflight) . This
method is not supported by QNetworkReplyHandler, which then calls didFail().
This call returns it to DocumentThreadableLoader::didFail, where of course the
m_loader object is still null, since it is still being created.

I think didFail() should expect to handle calls when the m_loader object is
still null. The m_loader object is inaccessible to QNetworkReplyHandler and it
seems reasonable to call didFail() if the http method is not supported and
therefore request has failed.

The following works for me:

void DocumentThreadableLoader::didFail(SubresourceLoader* loader, const
ResourceError& error)
{
    ASSERT(m_client);
    // If the httpMethod() of the request passed to SubresourceLoader::create
is not supported by
    // the client we must expect to call didFail() while m_loader is still
null.
    ASSERT_UNUSED(loader, loader == m_loader || !m_loader);

    m_client->didFail(error);
}

-- 
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