Changeset 65859 in webkit


Ignore:
Timestamp:
Aug 23, 2010 8:25:48 PM (14 years ago)
Author:
commit-queue@webkit.org
Message:

2010-08-23 Patrick Gansterer <paroga@paroga.com>

Reviewed by Adam Roben.

Set the ResourceResponse HTTP headers in RessourceHandleWin
https://bugs.webkit.org/show_bug.cgi?id=44444

  • platform/network/win/ResourceHandleWin.cpp: (WebCore::queryHTTPHeader): (WebCore::ResourceHandle::onRequestComplete):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r65857 r65859  
     12010-08-23  Patrick Gansterer  <paroga@paroga.com>
     2
     3        Reviewed by Adam Roben.
     4
     5        Set the ResourceResponse HTTP headers in RessourceHandleWin
     6        https://bugs.webkit.org/show_bug.cgi?id=44444
     7
     8        * platform/network/win/ResourceHandleWin.cpp:
     9        (WebCore::queryHTTPHeader):
     10        (WebCore::ResourceHandle::onRequestComplete):
     11
    1122010-08-23  Patrick Gansterer  <paroga@paroga.com>
    213
  • trunk/WebCore/platform/network/win/ResourceHandleWin.cpp

    r65835 r65859  
    6565};
    6666
     67static String queryHTTPHeader(HINTERNET requestHandle, DWORD infoLevel)
     68{
     69    DWORD bufferSize = 0;
     70    HttpQueryInfoW(requestHandle, infoLevel, 0, &bufferSize, 0);
     71
     72    Vector<UChar> characters(bufferSize / sizeof(UChar));
     73
     74    if (!HttpQueryInfoW(requestHandle, infoLevel, characters.data(), &bufferSize, 0))
     75        return String();
     76
     77    characters.removeLast(); // Remove NullTermination.
     78    return String::adopt(characters);
     79}
     80
    6781static int addToOutstandingJobs(ResourceHandle* job)
    6882{
     
    227241
    228242    HINTERNET handle = (request().httpMethod() == "POST") ? d->m_secondaryHandle : d->m_resourceHandle;
    229     BOOL ok = FALSE;
    230243
    231244    static const int bufferSize = 32768;
     
    236249    buffers.dwBufferLength = bufferSize;
    237250
    238     bool receivedAnyData = false;
     251    BOOL ok = FALSE;
    239252    while ((ok = InternetReadFileExA(handle, &buffers, IRF_NO_WAIT, (DWORD_PTR)this)) && buffers.dwBufferLength) {
    240253        if (!hasReceivedResponse()) {
    241254            setHasReceivedResponse();
    242255            ResourceResponse response;
     256            response.setURL(firstRequest().url());
     257
     258            String httpStatusText = queryHTTPHeader(d->m_requestHandle, HTTP_QUERY_STATUS_TEXT);
     259            if (!httpStatusText.isNull())
     260                response.setHTTPStatusText(httpStatusText);
     261
     262            String httpStatusCode = queryHTTPHeader(d->m_requestHandle, HTTP_QUERY_STATUS_CODE);
     263            if (!httpStatusCode.isNull())
     264                response.setHTTPStatusCode(httpStatusCode.toInt());
     265
     266            String httpContentLength = queryHTTPHeader(d->m_requestHandle, HTTP_QUERY_CONTENT_LENGTH);
     267            if (!httpContentLength.isNull())
     268                response.setExpectedContentLength(httpContentLength.toInt());
     269
     270            String httpContentType = queryHTTPHeader(d->m_requestHandle, HTTP_QUERY_CONTENT_TYPE);
     271            if (!httpContentType.isNull()) {
     272                response.setMimeType(extractMIMETypeFromMediaType(httpContentType));
     273                response.setTextEncodingName(extractCharsetFromMediaType(httpContentType));
     274            }
     275
    243276            client()->didReceiveResponse(this, response);
    244277        }
Note: See TracChangeset for help on using the changeset viewer.