[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

andersca at apple.com andersca at apple.com
Wed Dec 22 15:24:23 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 22156ebe49d41dcbbfb20e0ec038824fb5777f59
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Nov 2 21:26:37 2010 +0000

    Add strings to NPVariantData
    https://bugs.webkit.org/show_bug.cgi?id=48871
    
    Reviewed by Dan Bernstein.
    
    * Shared/Plugins/NPRemoteObjectMap.cpp:
    (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
    (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
    * Shared/Plugins/NPVariantData.cpp:
    (WebKit::NPVariantData::makeString):
    (WebKit::NPVariantData::encode):
    (WebKit::NPVariantData::decode):
    * Shared/Plugins/NPVariantData.h:
    (WebKit::NPVariantData::stringValue):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71171 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 7fad354..3fee795 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -2,6 +2,23 @@
 
         Reviewed by Dan Bernstein.
 
+        Add strings to NPVariantData
+        https://bugs.webkit.org/show_bug.cgi?id=48871
+
+        * Shared/Plugins/NPRemoteObjectMap.cpp:
+        (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
+        (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
+        * Shared/Plugins/NPVariantData.cpp:
+        (WebKit::NPVariantData::makeString):
+        (WebKit::NPVariantData::encode):
+        (WebKit::NPVariantData::decode):
+        * Shared/Plugins/NPVariantData.h:
+        (WebKit::NPVariantData::stringValue):
+
+2010-11-02  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Dan Bernstein.
+
         Add convenience functions for allocating NPAPI memory
         https://bugs.webkit.org/show_bug.cgi?id=48870
 
diff --git a/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp b/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp
index 34440ef..b36f343 100644
--- a/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp
+++ b/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp
@@ -29,6 +29,7 @@
 
 #include "NPObjectMessageReceiver.h"
 #include "NPObjectProxy.h"
+#include "NPRuntimeUtilities.h"
 #include "NPVariantData.h"
 #include "NotImplemented.h"
 #include <wtf/OwnPtr.h>
@@ -98,10 +99,12 @@ NPVariantData NPRemoteObjectMap::npVariantToNPVariantData(const NPVariant& varia
 
     case NPVariantType_Double:
         return NPVariantData::makeDouble(variant.value.doubleValue);
-            
+
+    case NPVariantType_String:
+        return NPVariantData::makeString(variant.value.stringValue.UTF8Characters, variant.value.stringValue.UTF8Length);
+
     case NPVariantType_Null:
     case NPVariantType_Int32:
-    case NPVariantType_String:
         notImplemented();
         return NPVariantData::makeVoid();
 
@@ -137,6 +140,11 @@ NPVariant NPRemoteObjectMap::npVariantDataToNPVariant(const NPVariantData& npVar
     case NPVariantData::Double:
         DOUBLE_TO_NPVARIANT(npVariantData.doubleValue(), npVariant);
         break;
+    case NPVariantData::String: {
+        NPString npString = createNPString(npVariantData.stringValue());
+        STRINGN_TO_NPVARIANT(npString.UTF8Characters, npString.UTF8Length, npVariant);
+        break;
+    }
     case NPVariantData::LocalNPObjectID:
         notImplemented();
         VOID_TO_NPVARIANT(npVariant);
diff --git a/WebKit2/Shared/Plugins/NPVariantData.cpp b/WebKit2/Shared/Plugins/NPVariantData.cpp
index 9b427a9..4ead6f9 100644
--- a/WebKit2/Shared/Plugins/NPVariantData.cpp
+++ b/WebKit2/Shared/Plugins/NPVariantData.cpp
@@ -30,6 +30,7 @@
 #include "ArgumentDecoder.h"
 #include "ArgumentEncoder.h"
 #include "NotImplemented.h"
+#include "WebCoreArgumentCoders.h"
 
 namespace WebKit {
 
@@ -67,6 +68,16 @@ NPVariantData NPVariantData::makeDouble(double value)
     return npVariantData;
 }
 
+NPVariantData NPVariantData::makeString(const char* string, unsigned length)
+{
+    NPVariantData npVariantData;
+    
+    npVariantData.m_type = NPVariantData::String;
+    npVariantData.m_stringValue = CString(string, length);
+    
+    return npVariantData;
+}
+
 NPVariantData NPVariantData::makeLocalNPObjectID(uint64_t value)
 {
     NPVariantData npVariantData;
@@ -90,6 +101,9 @@ void NPVariantData::encode(CoreIPC::ArgumentEncoder* encoder) const
     case NPVariantData::Double:
         encoder->encode(doubleValue());
         break;
+    case NPVariantData::String:
+        encoder->encode(stringValue());
+        break;
     case NPVariantData::LocalNPObjectID:
         encoder->encode(localNPObjectIDValue());
         break;
@@ -123,6 +137,8 @@ bool NPVariantData::decode(CoreIPC::ArgumentDecoder* decoder, NPVariantData& res
         return decoder->decode(result.m_boolValue);
     case NPVariantData::Double:
         return decoder->decode(result.m_doubleValue);
+    case NPVariantData::String:
+        return decoder->decode(result.m_stringValue);
     case NPVariantData::LocalNPObjectID:
         return decoder->decode(result.m_localNPObjectIDValue);
     case NPVariantData::RemoteNPObjectID:
diff --git a/WebKit2/Shared/Plugins/NPVariantData.h b/WebKit2/Shared/Plugins/NPVariantData.h
index c6db5bf..9783f13 100644
--- a/WebKit2/Shared/Plugins/NPVariantData.h
+++ b/WebKit2/Shared/Plugins/NPVariantData.h
@@ -28,6 +28,8 @@
 
 #if ENABLE(PLUGIN_PROCESS)
 
+#include <wtf/text/CString.h>
+
 namespace CoreIPC {
     class ArgumentDecoder;
     class ArgumentEncoder;
@@ -43,6 +45,7 @@ public:
         Void,
         Bool,
         Double,
+        String,
         LocalNPObjectID,
         RemoteNPObjectID,
     };
@@ -51,6 +54,7 @@ public:
     static NPVariantData makeVoid();
     static NPVariantData makeBool(bool value);
     static NPVariantData makeDouble(double value);
+    static NPVariantData makeString(const char* string, unsigned length);
     static NPVariantData makeLocalNPObjectID(uint64_t value);
 
     Type type() const { return static_cast<Type>(m_type); }
@@ -67,6 +71,12 @@ public:
         return m_doubleValue;
     }
 
+    const CString& stringValue() const
+    {
+        ASSERT(type() == NPVariantData::String);
+        return m_stringValue;
+    }
+
     uint64_t localNPObjectIDValue() const
     {
         ASSERT(type() == NPVariantData::LocalNPObjectID);
@@ -86,6 +96,7 @@ private:
     uint32_t m_type;
     bool m_boolValue;
     double m_doubleValue;
+    CString m_stringValue;
     uint64_t m_localNPObjectIDValue;
     uint64_t m_remoteNPObjectIDValue;
 };

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list