Title: [88960] trunk/Source/WebKit2
Revision
88960
Author
[email protected]
Date
2011-06-15 11:14:35 -0700 (Wed, 15 Jun 2011)

Log Message

2011-06-15  Anders Carlsson  <[email protected]>

        Reviewed by Alexey Proskuryakov.

        Move some argument coders to WebCoreArgumentCoders.cpp
        https://bugs.webkit.org/show_bug.cgi?id=62739

        * GNUmakefile.am:
        * Shared/WebCoreArgumentCoders.cpp:
        (CoreIPC::::encode):
        (CoreIPC::::decode):
        * Shared/WebCoreArgumentCoders.h:
        * WebKit2.pro:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (88959 => 88960)


--- trunk/Source/WebKit2/ChangeLog	2011-06-15 18:11:30 UTC (rev 88959)
+++ trunk/Source/WebKit2/ChangeLog	2011-06-15 18:14:35 UTC (rev 88960)
@@ -1,5 +1,19 @@
 2011-06-15  Anders Carlsson  <[email protected]>
 
+        Reviewed by Alexey Proskuryakov.
+
+        Move some argument coders to WebCoreArgumentCoders.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=62739
+
+        * GNUmakefile.am:
+        * Shared/WebCoreArgumentCoders.cpp:
+        (CoreIPC::::encode):
+        (CoreIPC::::decode):
+        * Shared/WebCoreArgumentCoders.h:
+        * WebKit2.pro:
+
+2011-06-15  Anders Carlsson  <[email protected]>
+
         Reviewed by Sam Weinig.
 
         Fix possible null dereference in webSecKeychainItemCreateFromContentOnMainThread

Modified: trunk/Source/WebKit2/GNUmakefile.am (88959 => 88960)


--- trunk/Source/WebKit2/GNUmakefile.am	2011-06-15 18:11:30 UTC (rev 88959)
+++ trunk/Source/WebKit2/GNUmakefile.am	2011-06-15 18:14:35 UTC (rev 88960)
@@ -256,6 +256,7 @@
 	Source/WebKit2/Shared/WebContextMenuItemData.cpp \
 	Source/WebKit2/Shared/WebContextMenuItemData.h \
 	Source/WebKit2/Shared/WebContextMenuItem.h \
+	Source/WebKit2/Shared/WebCoreArgumentCoders.cpp \
 	Source/WebKit2/Shared/WebCoreArgumentCoders.h \
 	Source/WebKit2/Shared/WebData.h \
 	Source/WebKit2/Shared/WebError.cpp \

Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (88959 => 88960)


--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp	2011-06-15 18:11:30 UTC (rev 88959)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp	2011-06-15 18:14:35 UTC (rev 88960)
@@ -26,11 +26,138 @@
 #include "config.h"
 #include "WebCoreArgumentCoders.h"
 
+#include <WebCore/PluginData.h>
+
 using namespace WebCore;
 using namespace WebKit;
 
 namespace CoreIPC {
+    
+void ArgumentCoder<MimeClassInfo>::encode(ArgumentEncoder* encoder, const MimeClassInfo& mimeClassInfo)
+{
+    encoder->encode(mimeClassInfo.type);
+    encoder->encode(mimeClassInfo.desc);
+    encoder->encode(mimeClassInfo.extensions);
+}
 
+bool ArgumentCoder<MimeClassInfo>::decode(ArgumentDecoder* decoder, MimeClassInfo& mimeClassInfo)
+{
+    if (!decoder->decode(mimeClassInfo.type))
+        return false;
+    if (!decoder->decode(mimeClassInfo.desc))
+        return false;
+    if (!decoder->decode(mimeClassInfo.extensions))
+        return false;
+
+    return true;
+}
+
+
+void ArgumentCoder<PluginInfo>::encode(ArgumentEncoder* encoder, const PluginInfo& pluginInfo)
+{
+    encoder->encode(pluginInfo.name);
+    encoder->encode(pluginInfo.file);
+    encoder->encode(pluginInfo.desc);
+    encoder->encode(pluginInfo.mimes);
+}
+    
+bool ArgumentCoder<PluginInfo>::decode(ArgumentDecoder* decoder, PluginInfo& pluginInfo)
+{
+    if (!decoder->decode(pluginInfo.name))
+        return false;
+    if (!decoder->decode(pluginInfo.file))
+        return false;
+    if (!decoder->decode(pluginInfo.desc))
+        return false;
+    if (!decoder->decode(pluginInfo.mimes))
+        return false;
+
+    return true;
+}
+
+
+void ArgumentCoder<HTTPHeaderMap>::encode(ArgumentEncoder* encoder, const HTTPHeaderMap& headerMap)
+{
+    encoder->encode(static_cast<const HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap));
+}
+
+bool ArgumentCoder<HTTPHeaderMap>::decode(ArgumentDecoder* decoder, HTTPHeaderMap& headerMap)
+{
+    return decoder->decode(static_cast<HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap));
+}
+
+
+void ArgumentCoder<AuthenticationChallenge>::encode(ArgumentEncoder* encoder, const AuthenticationChallenge& challenge)
+{
+    encoder->encode(challenge.protectionSpace());
+    encoder->encode(challenge.proposedCredential());
+    encoder->encode(challenge.previousFailureCount());
+    encoder->encode(challenge.failureResponse());
+    encoder->encode(challenge.error());
+}
+
+bool ArgumentCoder<AuthenticationChallenge>::decode(ArgumentDecoder* decoder, AuthenticationChallenge& challenge)
+{    
+    ProtectionSpace protectionSpace;
+    if (!decoder->decode(protectionSpace))
+        return false;
+
+    Credential proposedCredential;
+    if (!decoder->decode(proposedCredential))
+        return false;
+
+    unsigned previousFailureCount;    
+    if (!decoder->decode(previousFailureCount))
+        return false;
+
+    ResourceResponse failureResponse;
+    if (!decoder->decode(failureResponse))
+        return false;
+
+    ResourceError error;
+    if (!decoder->decode(error))
+        return false;
+    
+    challenge = WebCore::AuthenticationChallenge(protectionSpace, proposedCredential, previousFailureCount, failureResponse, error);
+    return true;
+}
+
+
+void ArgumentCoder<ProtectionSpace>::encode(ArgumentEncoder* encoder, const ProtectionSpace& space)
+{
+    encoder->encode(space.host());
+    encoder->encode(space.port());
+    encoder->encodeEnum(space.serverType());
+    encoder->encode(space.realm());
+    encoder->encodeEnum(space.authenticationScheme());
+}
+
+bool ArgumentCoder<ProtectionSpace>::decode(ArgumentDecoder* decoder, ProtectionSpace& space)
+{
+    String host;
+    if (!decoder->decode(host))
+        return false;
+
+    int port;
+    if (!decoder->decode(port))
+        return false;
+
+    ProtectionSpaceServerType serverType;
+    if (!decoder->decodeEnum(serverType))
+        return false;
+
+    String realm;
+    if (!decoder->decode(realm))
+        return false;
+    
+    ProtectionSpaceAuthenticationScheme authenticationScheme;
+    if (!decoder->decodeEnum(authenticationScheme))
+        return false;
+
+    space = WebCore::ProtectionSpace(host, port, serverType, realm, authenticationScheme);
+    return true;
+}
+
 // For now, these are CG-only. Once other platforms have createImage functions,
 // we can compile these for non-CG builds.
 #if USE(CG)

Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (88959 => 88960)


--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h	2011-06-15 18:11:30 UTC (rev 88959)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h	2011-06-15 18:14:35 UTC (rev 88960)
@@ -49,7 +49,6 @@
 #include <WebCore/Matrix3DTransformOperation.h>
 #include <WebCore/MatrixTransformOperation.h>
 #include <WebCore/PerspectiveTransformOperation.h>
-#include <WebCore/PluginData.h>
 #include <WebCore/ProtectionSpace.h>
 #include <WebCore/ResourceError.h>
 #include <WebCore/ResourceRequest.h>
@@ -66,6 +65,11 @@
 #include <WebCore/WindowFeatures.h>
 #include <limits>
 
+namespace WebCore {
+    class HTTPHeaderMap;
+    struct MimeClassInfo;
+    struct PluginInfo;
+}
 
 namespace CoreIPC {
 
@@ -90,106 +94,28 @@
 template<> struct ArgumentCoder<WebCore::TranslateTransformOperation> : SimpleArgumentCoder<WebCore::TranslateTransformOperation> { };
 
 template<> struct ArgumentCoder<WebCore::MimeClassInfo> {
-    static void encode(ArgumentEncoder* encoder, const WebCore::MimeClassInfo& mimeClassInfo)
-    {
-        encoder->encode(mimeClassInfo.type);
-        encoder->encode(mimeClassInfo.desc);
-        encoder->encode(mimeClassInfo.extensions);
-    }
-
-    static bool decode(ArgumentDecoder* decoder, WebCore::MimeClassInfo& mimeClassInfo)
-    {
-        if (!decoder->decode(mimeClassInfo.type))
-            return false;
-        if (!decoder->decode(mimeClassInfo.desc))
-            return false;
-        if (!decoder->decode(mimeClassInfo.extensions))
-            return false;
-
-        return true;
-    }
+    static void encode(ArgumentEncoder*, const WebCore::MimeClassInfo&);
+    static bool decode(ArgumentDecoder*, WebCore::MimeClassInfo&);
 };
-    
-template<> struct ArgumentCoder<WebCore::PluginInfo> {
-    static void encode(ArgumentEncoder* encoder, const WebCore::PluginInfo& pluginInfo)
-    {
-        encoder->encode(pluginInfo.name);
-        encoder->encode(pluginInfo.file);
-        encoder->encode(pluginInfo.desc);
-        encoder->encode(pluginInfo.mimes);
-    }
-    
-    static bool decode(ArgumentDecoder* decoder, WebCore::PluginInfo& pluginInfo)
-    {
-        if (!decoder->decode(pluginInfo.name))
-            return false;
-        if (!decoder->decode(pluginInfo.file))
-            return false;
-        if (!decoder->decode(pluginInfo.desc))
-            return false;
-        if (!decoder->decode(pluginInfo.mimes))
-            return false;
 
-        return true;
-    }
+template<> struct ArgumentCoder<WebCore::PluginInfo> {
+    static void encode(ArgumentEncoder*, const WebCore::PluginInfo&);
+    static bool decode(ArgumentDecoder*, WebCore::PluginInfo&);
 };
 
 template<> struct ArgumentCoder<WebCore::HTTPHeaderMap> {
-    static void encode(ArgumentEncoder* encoder, const WebCore::HTTPHeaderMap& headerMap)
-    {
-        encoder->encode(static_cast<const HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap));
-    }
-
-    static bool decode(ArgumentDecoder* decoder, WebCore::HTTPHeaderMap& headerMap)
-    {
-        return decoder->decode(static_cast<HashMap<AtomicString, String, CaseFoldingHash>&>(headerMap));
-    }
+    static void encode(ArgumentEncoder*, const WebCore::HTTPHeaderMap&);
+    static bool decode(ArgumentDecoder*, WebCore::HTTPHeaderMap&);
 };
 
 template<> struct ArgumentCoder<WebCore::AuthenticationChallenge> {
-    static void encode(ArgumentEncoder* encoder, const WebCore::AuthenticationChallenge& challenge)
-    {
-        encoder->encode(CoreIPC::In(challenge.protectionSpace(), challenge.proposedCredential(), challenge.previousFailureCount(), challenge.failureResponse(), challenge.error()));
-    }
-
-    static bool decode(ArgumentDecoder* decoder, WebCore::AuthenticationChallenge& challenge)
-    {    
-        WebCore::ProtectionSpace protectionSpace;
-        WebCore::Credential proposedCredential;
-        unsigned previousFailureCount;
-        WebCore::ResourceResponse failureResponse;
-        WebCore::ResourceError error;
-
-        if (!decoder->decode(CoreIPC::Out(protectionSpace, proposedCredential, previousFailureCount, failureResponse, error)))
-            return false;
-        
-        challenge = WebCore::AuthenticationChallenge(protectionSpace, proposedCredential, previousFailureCount, failureResponse, error);
-
-        return true;
-    }
+    static void encode(ArgumentEncoder*, const WebCore::AuthenticationChallenge&);
+    static bool decode(ArgumentDecoder*, WebCore::AuthenticationChallenge&);
 };
 
 template<> struct ArgumentCoder<WebCore::ProtectionSpace> {
-    static void encode(ArgumentEncoder* encoder, const WebCore::ProtectionSpace& space)
-    {
-        encoder->encode(CoreIPC::In(space.host(), space.port(), static_cast<uint32_t>(space.serverType()), space.realm(), static_cast<uint32_t>(space.authenticationScheme())));
-    }
-
-    static bool decode(ArgumentDecoder* decoder, WebCore::ProtectionSpace& space)
-    {
-        String host;
-        int port;
-        uint32_t serverType;
-        String realm;
-        uint32_t authenticationScheme;
-
-        if (!decoder->decode(CoreIPC::Out(host, port, serverType, realm, authenticationScheme)))
-            return false;
-    
-        space = WebCore::ProtectionSpace(host, port, static_cast<WebCore::ProtectionSpaceServerType>(serverType), realm, static_cast<WebCore::ProtectionSpaceAuthenticationScheme>(authenticationScheme));
-
-        return true;
-    }
+    static void encode(ArgumentEncoder*, const WebCore::ProtectionSpace&);
+    static bool decode(ArgumentDecoder*, WebCore::ProtectionSpace&);
 };
 
 template<> struct ArgumentCoder<WebCore::Credential> {

Modified: trunk/Source/WebKit2/WebKit2.pro (88959 => 88960)


--- trunk/Source/WebKit2/WebKit2.pro	2011-06-15 18:11:30 UTC (rev 88959)
+++ trunk/Source/WebKit2/WebKit2.pro	2011-06-15 18:14:35 UTC (rev 88960)
@@ -353,6 +353,7 @@
     Shared/WebBackForwardListItem.cpp \
     Shared/WebContextMenuItem.cpp \
     Shared/WebContextMenuItemData.cpp \
+    Shared/WebCoreArgumentCoders.cpp \
     Shared/WebError.cpp \
     Shared/WebEvent.cpp \
     Shared/WebEventConversion.cpp \
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to