Changeset 88960 in webkit
- Timestamp:
- Jun 15, 2011 11:14:35 AM (13 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r88956 r88960 1 2011-06-15 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Alexey Proskuryakov. 4 5 Move some argument coders to WebCoreArgumentCoders.cpp 6 https://bugs.webkit.org/show_bug.cgi?id=62739 7 8 * GNUmakefile.am: 9 * Shared/WebCoreArgumentCoders.cpp: 10 (CoreIPC::::encode): 11 (CoreIPC::::decode): 12 * Shared/WebCoreArgumentCoders.h: 13 * WebKit2.pro: 14 1 15 2011-06-15 Anders Carlsson <andersca@apple.com> 2 16 -
trunk/Source/WebKit2/GNUmakefile.am
r88846 r88960 257 257 Source/WebKit2/Shared/WebContextMenuItemData.h \ 258 258 Source/WebKit2/Shared/WebContextMenuItem.h \ 259 Source/WebKit2/Shared/WebCoreArgumentCoders.cpp \ 259 260 Source/WebKit2/Shared/WebCoreArgumentCoders.h \ 260 261 Source/WebKit2/Shared/WebData.h \ -
trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp
r84101 r88960 27 27 #include "WebCoreArgumentCoders.h" 28 28 29 #include <WebCore/PluginData.h> 30 29 31 using namespace WebCore; 30 32 using namespace WebKit; 31 33 32 34 namespace CoreIPC { 35 36 void ArgumentCoder<MimeClassInfo>::encode(ArgumentEncoder* encoder, const MimeClassInfo& mimeClassInfo) 37 { 38 encoder->encode(mimeClassInfo.type); 39 encoder->encode(mimeClassInfo.desc); 40 encoder->encode(mimeClassInfo.extensions); 41 } 42 43 bool ArgumentCoder<MimeClassInfo>::decode(ArgumentDecoder* decoder, MimeClassInfo& mimeClassInfo) 44 { 45 if (!decoder->decode(mimeClassInfo.type)) 46 return false; 47 if (!decoder->decode(mimeClassInfo.desc)) 48 return false; 49 if (!decoder->decode(mimeClassInfo.extensions)) 50 return false; 51 52 return true; 53 } 54 55 56 void ArgumentCoder<PluginInfo>::encode(ArgumentEncoder* encoder, const PluginInfo& pluginInfo) 57 { 58 encoder->encode(pluginInfo.name); 59 encoder->encode(pluginInfo.file); 60 encoder->encode(pluginInfo.desc); 61 encoder->encode(pluginInfo.mimes); 62 } 63 64 bool ArgumentCoder<PluginInfo>::decode(ArgumentDecoder* decoder, PluginInfo& pluginInfo) 65 { 66 if (!decoder->decode(pluginInfo.name)) 67 return false; 68 if (!decoder->decode(pluginInfo.file)) 69 return false; 70 if (!decoder->decode(pluginInfo.desc)) 71 return false; 72 if (!decoder->decode(pluginInfo.mimes)) 73 return false; 74 75 return true; 76 } 77 78 79 void ArgumentCoder<HTTPHeaderMap>::encode(ArgumentEncoder* encoder, const HTTPHeaderMap& headerMap) 80 { 81 encoder->encode(static_cast<const HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap)); 82 } 83 84 bool ArgumentCoder<HTTPHeaderMap>::decode(ArgumentDecoder* decoder, HTTPHeaderMap& headerMap) 85 { 86 return decoder->decode(static_cast<HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap)); 87 } 88 89 90 void ArgumentCoder<AuthenticationChallenge>::encode(ArgumentEncoder* encoder, const AuthenticationChallenge& challenge) 91 { 92 encoder->encode(challenge.protectionSpace()); 93 encoder->encode(challenge.proposedCredential()); 94 encoder->encode(challenge.previousFailureCount()); 95 encoder->encode(challenge.failureResponse()); 96 encoder->encode(challenge.error()); 97 } 98 99 bool ArgumentCoder<AuthenticationChallenge>::decode(ArgumentDecoder* decoder, AuthenticationChallenge& challenge) 100 { 101 ProtectionSpace protectionSpace; 102 if (!decoder->decode(protectionSpace)) 103 return false; 104 105 Credential proposedCredential; 106 if (!decoder->decode(proposedCredential)) 107 return false; 108 109 unsigned previousFailureCount; 110 if (!decoder->decode(previousFailureCount)) 111 return false; 112 113 ResourceResponse failureResponse; 114 if (!decoder->decode(failureResponse)) 115 return false; 116 117 ResourceError error; 118 if (!decoder->decode(error)) 119 return false; 120 121 challenge = WebCore::AuthenticationChallenge(protectionSpace, proposedCredential, previousFailureCount, failureResponse, error); 122 return true; 123 } 124 125 126 void ArgumentCoder<ProtectionSpace>::encode(ArgumentEncoder* encoder, const ProtectionSpace& space) 127 { 128 encoder->encode(space.host()); 129 encoder->encode(space.port()); 130 encoder->encodeEnum(space.serverType()); 131 encoder->encode(space.realm()); 132 encoder->encodeEnum(space.authenticationScheme()); 133 } 134 135 bool ArgumentCoder<ProtectionSpace>::decode(ArgumentDecoder* decoder, ProtectionSpace& space) 136 { 137 String host; 138 if (!decoder->decode(host)) 139 return false; 140 141 int port; 142 if (!decoder->decode(port)) 143 return false; 144 145 ProtectionSpaceServerType serverType; 146 if (!decoder->decodeEnum(serverType)) 147 return false; 148 149 String realm; 150 if (!decoder->decode(realm)) 151 return false; 152 153 ProtectionSpaceAuthenticationScheme authenticationScheme; 154 if (!decoder->decodeEnum(authenticationScheme)) 155 return false; 156 157 space = WebCore::ProtectionSpace(host, port, serverType, realm, authenticationScheme); 158 return true; 159 } 33 160 34 161 // For now, these are CG-only. Once other platforms have createImage functions, -
trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h
r88392 r88960 50 50 #include <WebCore/MatrixTransformOperation.h> 51 51 #include <WebCore/PerspectiveTransformOperation.h> 52 #include <WebCore/PluginData.h>53 52 #include <WebCore/ProtectionSpace.h> 54 53 #include <WebCore/ResourceError.h> … … 67 66 #include <limits> 68 67 68 namespace WebCore { 69 class HTTPHeaderMap; 70 struct MimeClassInfo; 71 struct PluginInfo; 72 } 69 73 70 74 namespace CoreIPC { … … 91 95 92 96 template<> struct ArgumentCoder<WebCore::MimeClassInfo> { 93 static void encode(ArgumentEncoder* encoder, const WebCore::MimeClassInfo& mimeClassInfo) 94 { 95 encoder->encode(mimeClassInfo.type); 96 encoder->encode(mimeClassInfo.desc); 97 encoder->encode(mimeClassInfo.extensions); 98 } 99 100 static bool decode(ArgumentDecoder* decoder, WebCore::MimeClassInfo& mimeClassInfo) 101 { 102 if (!decoder->decode(mimeClassInfo.type)) 103 return false; 104 if (!decoder->decode(mimeClassInfo.desc)) 105 return false; 106 if (!decoder->decode(mimeClassInfo.extensions)) 107 return false; 108 109 return true; 110 } 111 }; 112 97 static void encode(ArgumentEncoder*, const WebCore::MimeClassInfo&); 98 static bool decode(ArgumentDecoder*, WebCore::MimeClassInfo&); 99 }; 100 113 101 template<> struct ArgumentCoder<WebCore::PluginInfo> { 114 static void encode(ArgumentEncoder* encoder, const WebCore::PluginInfo& pluginInfo) 115 { 116 encoder->encode(pluginInfo.name); 117 encoder->encode(pluginInfo.file); 118 encoder->encode(pluginInfo.desc); 119 encoder->encode(pluginInfo.mimes); 120 } 121 122 static bool decode(ArgumentDecoder* decoder, WebCore::PluginInfo& pluginInfo) 123 { 124 if (!decoder->decode(pluginInfo.name)) 125 return false; 126 if (!decoder->decode(pluginInfo.file)) 127 return false; 128 if (!decoder->decode(pluginInfo.desc)) 129 return false; 130 if (!decoder->decode(pluginInfo.mimes)) 131 return false; 132 133 return true; 134 } 102 static void encode(ArgumentEncoder*, const WebCore::PluginInfo&); 103 static bool decode(ArgumentDecoder*, WebCore::PluginInfo&); 135 104 }; 136 105 137 106 template<> struct ArgumentCoder<WebCore::HTTPHeaderMap> { 138 static void encode(ArgumentEncoder* encoder, const WebCore::HTTPHeaderMap& headerMap) 139 { 140 encoder->encode(static_cast<const HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap)); 141 } 142 143 static bool decode(ArgumentDecoder* decoder, WebCore::HTTPHeaderMap& headerMap) 144 { 145 return decoder->decode(static_cast<HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap)); 146 } 107 static void encode(ArgumentEncoder*, const WebCore::HTTPHeaderMap&); 108 static bool decode(ArgumentDecoder*, WebCore::HTTPHeaderMap&); 147 109 }; 148 110 149 111 template<> struct ArgumentCoder<WebCore::AuthenticationChallenge> { 150 static void encode(ArgumentEncoder* encoder, const WebCore::AuthenticationChallenge& challenge) 151 { 152 encoder->encode(CoreIPC::In(challenge.protectionSpace(), challenge.proposedCredential(), challenge.previousFailureCount(), challenge.failureResponse(), challenge.error())); 153 } 154 155 static bool decode(ArgumentDecoder* decoder, WebCore::AuthenticationChallenge& challenge) 156 { 157 WebCore::ProtectionSpace protectionSpace; 158 WebCore::Credential proposedCredential; 159 unsigned previousFailureCount; 160 WebCore::ResourceResponse failureResponse; 161 WebCore::ResourceError error; 162 163 if (!decoder->decode(CoreIPC::Out(protectionSpace, proposedCredential, previousFailureCount, failureResponse, error))) 164 return false; 165 166 challenge = WebCore::AuthenticationChallenge(protectionSpace, proposedCredential, previousFailureCount, failureResponse, error); 167 168 return true; 169 } 112 static void encode(ArgumentEncoder*, const WebCore::AuthenticationChallenge&); 113 static bool decode(ArgumentDecoder*, WebCore::AuthenticationChallenge&); 170 114 }; 171 115 172 116 template<> struct ArgumentCoder<WebCore::ProtectionSpace> { 173 static void encode(ArgumentEncoder* encoder, const WebCore::ProtectionSpace& space) 174 { 175 encoder->encode(CoreIPC::In(space.host(), space.port(), static_cast<uint32_t>(space.serverType()), space.realm(), static_cast<uint32_t>(space.authenticationScheme()))); 176 } 177 178 static bool decode(ArgumentDecoder* decoder, WebCore::ProtectionSpace& space) 179 { 180 String host; 181 int port; 182 uint32_t serverType; 183 String realm; 184 uint32_t authenticationScheme; 185 186 if (!decoder->decode(CoreIPC::Out(host, port, serverType, realm, authenticationScheme))) 187 return false; 188 189 space = WebCore::ProtectionSpace(host, port, static_cast<WebCore::ProtectionSpaceServerType>(serverType), realm, static_cast<WebCore::ProtectionSpaceAuthenticationScheme>(authenticationScheme)); 190 191 return true; 192 } 117 static void encode(ArgumentEncoder*, const WebCore::ProtectionSpace&); 118 static bool decode(ArgumentDecoder*, WebCore::ProtectionSpace&); 193 119 }; 194 120 -
trunk/Source/WebKit2/WebKit2.pro
r88926 r88960 354 354 Shared/WebContextMenuItem.cpp \ 355 355 Shared/WebContextMenuItemData.cpp \ 356 Shared/WebCoreArgumentCoders.cpp \ 356 357 Shared/WebError.cpp \ 357 358 Shared/WebEvent.cpp \
Note: See TracChangeset
for help on using the changeset viewer.