Changeset 89030 in webkit


Ignore:
Timestamp:
Jun 16, 2011 9:03:15 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-06-16 Sangyong Park <sy302.park@gmail.com>

Reviewed by Martin Robinson.

[GTK] Implement ResourceRequest and ResourceResponse encoder/decoder
https://bugs.webkit.org/show_bug.cgi?id=55934

  • Shared/gtk/WebCoreArgumentCodersGtk.cpp: (CoreIPC::encodeResourceRequest): (CoreIPC::decodeResourceRequest): (CoreIPC::encodeResourceResponse): (CoreIPC::decodeResourceResponse):
Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r89028 r89030  
     12011-06-16  Sangyong Park  <sy302.park@gmail.com>
     2
     3        Reviewed by Martin Robinson.
     4
     5        [GTK] Implement ResourceRequest and ResourceResponse encoder/decoder
     6        https://bugs.webkit.org/show_bug.cgi?id=55934
     7
     8        * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
     9        (CoreIPC::encodeResourceRequest):
     10        (CoreIPC::decodeResourceRequest):
     11        (CoreIPC::encodeResourceResponse):
     12        (CoreIPC::decodeResourceResponse):
     13
    1142011-06-16  Carlos Garcia Campos  <cgarcia@igalia.com>
    215
  • trunk/Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp

    r82002 r89030  
    2626
    2727#include "config.h"
     28#include "ResourceRequest.h"
    2829#include "WebCoreArgumentCoders.h"
    2930
    30 #include <WebCore/NotImplemented.h>
    31 
    3231namespace CoreIPC {
    3332
    3433void encodeResourceRequest(ArgumentEncoder* encoder, const WebCore::ResourceRequest& resourceRequest)
    3534{
    36     notImplemented();
     35    encoder->encode(CoreIPC::In(resourceRequest.url().string()));
     36    encoder->encode(CoreIPC::In(resourceRequest.httpMethod()));
     37
     38    const WebCore::HTTPHeaderMap& headers = resourceRequest.httpHeaderFields();
     39    encoder->encode(CoreIPC::In(static_cast<uint32_t>(headers.size())));
     40    if (!headers.isEmpty()) {
     41        WebCore::HTTPHeaderMap::const_iterator end = headers.end();
     42        for (WebCore::HTTPHeaderMap::const_iterator it = headers.begin(); it != end; ++it)
     43            encoder->encode(CoreIPC::In(it->first, it->second));
     44    }
     45
     46    WebCore::FormData* httpBody = resourceRequest.httpBody();
     47    encoder->encode(CoreIPC::In(static_cast<bool>(httpBody)));
     48    if (httpBody)
     49        encoder->encode(CoreIPC::In(httpBody->flattenToString()));
     50
     51    encoder->encode(CoreIPC::In(resourceRequest.firstPartyForCookies().string()));
     52    encoder->encode(CoreIPC::In(static_cast<uint32_t>(resourceRequest.soupMessageFlags())));
    3753}
    3854
    3955bool decodeResourceRequest(ArgumentDecoder* decoder, WebCore::ResourceRequest& resourceRequest)
    4056{
    41     notImplemented();
    42 
    43     // FIXME: Add real implementation when we want to implement something that
    44     // depends on this like the policy client.
    45     // https://bugs.webkit.org/show_bug.cgi?id=55934
    46     resourceRequest = WebCore::ResourceRequest();
     57    WebCore::ResourceRequest request;
     58
     59    String url;
     60    if (!decoder->decode(CoreIPC::Out(url)))
     61        return false;
     62    request.setURL(WebCore::KURL(WebCore::KURL(), url));
     63
     64    String httpMethod;
     65    if (!decoder->decode(CoreIPC::Out(httpMethod)))
     66        return false;
     67    request.setHTTPMethod(httpMethod);
     68
     69    uint32_t size;
     70    if (!decoder->decode(CoreIPC::Out(size)))
     71        return false;
     72    if (size) {
     73        AtomicString name;
     74        String value;
     75        for (uint32_t i = 0; i < size; ++i) {
     76            if (!decoder->decode(CoreIPC::Out(name, value)))
     77                return false;
     78            request.setHTTPHeaderField(name, value);
     79        }
     80    }
     81
     82    bool hasHTTPBody;
     83    if (!decoder->decode(CoreIPC::Out(hasHTTPBody)))
     84        return false;
     85    if (hasHTTPBody) {
     86        String httpBody;
     87        if (!decoder->decode(CoreIPC::Out(httpBody)))
     88            return false;
     89        request.setHTTPBody(WebCore::FormData::create(httpBody.utf8()));
     90    }
     91
     92    String firstPartyForCookies;
     93    if (!decoder->decode(CoreIPC::Out(firstPartyForCookies)))
     94        return false;
     95    request.setFirstPartyForCookies(WebCore::KURL(WebCore::KURL(), firstPartyForCookies));
     96
     97    uint32_t soupMessageFlags;
     98    if (!decoder->decode(CoreIPC::Out(soupMessageFlags)))
     99        return false;
     100    request.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
     101
     102    resourceRequest = request;
    47103    return true;
    48104}
     
    50106void encodeResourceResponse(ArgumentEncoder* encoder, const WebCore::ResourceResponse& resourceResponse)
    51107{
    52     notImplemented();
     108    encoder->encode(CoreIPC::In(resourceResponse.url().string()));
     109    encoder->encode(CoreIPC::In(static_cast<int32_t>(resourceResponse.httpStatusCode())));
     110
     111    const WebCore::HTTPHeaderMap& headers = resourceResponse.httpHeaderFields();
     112    encoder->encode(CoreIPC::In(static_cast<uint32_t>(headers.size())));
     113    if (!headers.isEmpty()) {
     114        WebCore::HTTPHeaderMap::const_iterator end = headers.end();
     115        for (WebCore::HTTPHeaderMap::const_iterator it = headers.begin(); it != end; ++it)
     116            encoder->encode(CoreIPC::In(it->first, it->second));
     117    }
     118
     119    encoder->encode(CoreIPC::In(static_cast<uint32_t>(resourceResponse.soupMessageFlags())));
     120    encoder->encode(CoreIPC::In(resourceResponse.mimeType()));
     121    encoder->encode(CoreIPC::In(resourceResponse.textEncodingName()));
     122    encoder->encode(CoreIPC::In(static_cast<int64_t>(resourceResponse.expectedContentLength())));
     123    encoder->encode(CoreIPC::In(resourceResponse.httpStatusText()));
     124    encoder->encode(CoreIPC::In(resourceResponse.suggestedFilename()));
    53125}
    54126
    55127bool decodeResourceResponse(ArgumentDecoder* decoder, WebCore::ResourceResponse& resourceResponse)
    56128{
    57     notImplemented();
    58 
    59     // FIXME: Ditto.
    60     resourceResponse = WebCore::ResourceResponse();
     129    WebCore::ResourceResponse response;
     130
     131    String url;
     132    if (!decoder->decode(CoreIPC::Out(url)))
     133        return false;
     134    response.setURL(WebCore::KURL(WebCore::KURL(), url));
     135
     136    int32_t httpStatusCode;
     137    if (!decoder->decode(CoreIPC::Out(httpStatusCode)))
     138        return false;
     139    response.setHTTPStatusCode(httpStatusCode);
     140
     141    uint32_t size;
     142    if (!decoder->decode(CoreIPC::Out(size)))
     143        return false;
     144    if (size) {
     145        AtomicString name;
     146        String value;
     147        for (uint32_t i = 0; i < size; ++i) {
     148            if (!decoder->decode(CoreIPC::Out(name, value)))
     149                return false;
     150            response.setHTTPHeaderField(name, value);
     151        }
     152    }
     153
     154    uint32_t soupMessageFlags;
     155    if (!decoder->decode(CoreIPC::Out(soupMessageFlags)))
     156        return false;
     157    response.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
     158
     159    String mimeType;
     160    if (!decoder->decode(CoreIPC::Out(mimeType)))
     161        return false;
     162    response.setMimeType(mimeType);
     163
     164    String textEncodingName;
     165    if (!decoder->decode(CoreIPC::Out(textEncodingName)))
     166        return false;
     167    response.setTextEncodingName(textEncodingName);
     168
     169    int64_t contentLength;
     170    if (!decoder->decode(CoreIPC::Out(contentLength)))
     171        return false;
     172    response.setExpectedContentLength(contentLength);
     173
     174    String httpStatusText;
     175    if (!decoder->decode(CoreIPC::Out(httpStatusText)))
     176        return false;
     177    response.setHTTPStatusText(httpStatusText);
     178
     179    String suggestedFilename;
     180    if (!decoder->decode(CoreIPC::Out(suggestedFilename)))
     181        return false;
     182    response.setSuggestedFilename(suggestedFilename);
     183
     184    resourceResponse = response;
    61185    return true;
    62186}
Note: See TracChangeset for help on using the changeset viewer.