Changeset 89030 in webkit
- Timestamp:
- Jun 16, 2011 9:03:15 AM (13 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r89028 r89030 1 2011-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 1 14 2011-06-16 Carlos Garcia Campos <cgarcia@igalia.com> 2 15 -
trunk/Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp
r82002 r89030 26 26 27 27 #include "config.h" 28 #include "ResourceRequest.h" 28 29 #include "WebCoreArgumentCoders.h" 29 30 30 #include <WebCore/NotImplemented.h>31 32 31 namespace CoreIPC { 33 32 34 33 void encodeResourceRequest(ArgumentEncoder* encoder, const WebCore::ResourceRequest& resourceRequest) 35 34 { 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()))); 37 53 } 38 54 39 55 bool decodeResourceRequest(ArgumentDecoder* decoder, WebCore::ResourceRequest& resourceRequest) 40 56 { 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; 47 103 return true; 48 104 } … … 50 106 void encodeResourceResponse(ArgumentEncoder* encoder, const WebCore::ResourceResponse& resourceResponse) 51 107 { 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())); 53 125 } 54 126 55 127 bool decodeResourceResponse(ArgumentDecoder* decoder, WebCore::ResourceResponse& resourceResponse) 56 128 { 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; 61 185 return true; 62 186 }
Note: See TracChangeset
for help on using the changeset viewer.