Changeset 71171 in webkit


Ignore:
Timestamp:
Nov 2, 2010 2:26:37 PM (13 years ago)
Author:
andersca@apple.com
Message:

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):

Location:
trunk/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r71169 r71171  
     12010-11-02  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        Add strings to NPVariantData
     6        https://bugs.webkit.org/show_bug.cgi?id=48871
     7
     8        * Shared/Plugins/NPRemoteObjectMap.cpp:
     9        (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
     10        (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
     11        * Shared/Plugins/NPVariantData.cpp:
     12        (WebKit::NPVariantData::makeString):
     13        (WebKit::NPVariantData::encode):
     14        (WebKit::NPVariantData::decode):
     15        * Shared/Plugins/NPVariantData.h:
     16        (WebKit::NPVariantData::stringValue):
     17
    1182010-11-02  Anders Carlsson  <andersca@apple.com>
    219
  • trunk/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp

    r71156 r71171  
    3030#include "NPObjectMessageReceiver.h"
    3131#include "NPObjectProxy.h"
     32#include "NPRuntimeUtilities.h"
    3233#include "NPVariantData.h"
    3334#include "NotImplemented.h"
     
    99100    case NPVariantType_Double:
    100101        return NPVariantData::makeDouble(variant.value.doubleValue);
    101            
     102
     103    case NPVariantType_String:
     104        return NPVariantData::makeString(variant.value.stringValue.UTF8Characters, variant.value.stringValue.UTF8Length);
     105
    102106    case NPVariantType_Null:
    103107    case NPVariantType_Int32:
    104     case NPVariantType_String:
    105108        notImplemented();
    106109        return NPVariantData::makeVoid();
     
    138141        DOUBLE_TO_NPVARIANT(npVariantData.doubleValue(), npVariant);
    139142        break;
     143    case NPVariantData::String: {
     144        NPString npString = createNPString(npVariantData.stringValue());
     145        STRINGN_TO_NPVARIANT(npString.UTF8Characters, npString.UTF8Length, npVariant);
     146        break;
     147    }
    140148    case NPVariantData::LocalNPObjectID:
    141149        notImplemented();
  • trunk/WebKit2/Shared/Plugins/NPVariantData.cpp

    r71156 r71171  
    3131#include "ArgumentEncoder.h"
    3232#include "NotImplemented.h"
     33#include "WebCoreArgumentCoders.h"
    3334
    3435namespace WebKit {
     
    6869}
    6970
     71NPVariantData NPVariantData::makeString(const char* string, unsigned length)
     72{
     73    NPVariantData npVariantData;
     74   
     75    npVariantData.m_type = NPVariantData::String;
     76    npVariantData.m_stringValue = CString(string, length);
     77   
     78    return npVariantData;
     79}
     80
    7081NPVariantData NPVariantData::makeLocalNPObjectID(uint64_t value)
    7182{
     
    90101    case NPVariantData::Double:
    91102        encoder->encode(doubleValue());
     103        break;
     104    case NPVariantData::String:
     105        encoder->encode(stringValue());
    92106        break;
    93107    case NPVariantData::LocalNPObjectID:
     
    124138    case NPVariantData::Double:
    125139        return decoder->decode(result.m_doubleValue);
     140    case NPVariantData::String:
     141        return decoder->decode(result.m_stringValue);
    126142    case NPVariantData::LocalNPObjectID:
    127143        return decoder->decode(result.m_localNPObjectIDValue);
  • trunk/WebKit2/Shared/Plugins/NPVariantData.h

    r71156 r71171  
    2929#if ENABLE(PLUGIN_PROCESS)
    3030
     31#include <wtf/text/CString.h>
     32
    3133namespace CoreIPC {
    3234    class ArgumentDecoder;
     
    4446        Bool,
    4547        Double,
     48        String,
    4649        LocalNPObjectID,
    4750        RemoteNPObjectID,
     
    5255    static NPVariantData makeBool(bool value);
    5356    static NPVariantData makeDouble(double value);
     57    static NPVariantData makeString(const char* string, unsigned length);
    5458    static NPVariantData makeLocalNPObjectID(uint64_t value);
    5559
     
    6670        ASSERT(type() == NPVariantData::Double);
    6771        return m_doubleValue;
     72    }
     73
     74    const CString& stringValue() const
     75    {
     76        ASSERT(type() == NPVariantData::String);
     77        return m_stringValue;
    6878    }
    6979
     
    8797    bool m_boolValue;
    8898    double m_doubleValue;
     99    CString m_stringValue;
    89100    uint64_t m_localNPObjectIDValue;
    90101    uint64_t m_remoteNPObjectIDValue;
Note: See TracChangeset for help on using the changeset viewer.