From 4dfbc18a1c24a9acb229d43d43e000d56492c649 Mon Sep 17 00:00:00 2001 From: Julian Hector Date: Mon, 4 Dec 2017 10:12:50 -0500 Subject: [PATCH] Bug 1401107 - Use ContiguousEnumSerializer for ParamTraits in npapi; r=jimm --- dom/plugins/base/npapi.h | 1 + dom/plugins/ipc/PluginMessageUtils.h | 113 ++++++--------------------- 2 files changed, 23 insertions(+), 91 deletions(-) diff --git a/dom/plugins/base/npapi.h b/dom/plugins/base/npapi.h index 9eddde4774d8..9fa0ac2b12c5 100644 --- a/dom/plugins/base/npapi.h +++ b/dom/plugins/base/npapi.h @@ -473,6 +473,7 @@ typedef enum { , NPNVsupportsCompositingCoreAnimationPluginsBool = 74656 /* TRUE if the browser supports CA model compositing */ #endif + , NPNVLast } NPNVariable; typedef enum { diff --git a/dom/plugins/ipc/PluginMessageUtils.h b/dom/plugins/ipc/PluginMessageUtils.h index b225e710af09..e7593feb2377 100644 --- a/dom/plugins/ipc/PluginMessageUtils.h +++ b/dom/plugins/ipc/PluginMessageUtils.h @@ -373,30 +373,11 @@ struct ParamTraits }; template <> -struct ParamTraits -{ - typedef NPWindowType paramType; - - static void Write(Message* aMsg, const paramType& aParam) - { - aMsg->WriteInt16(int16_t(aParam)); - } - - static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult) - { - int16_t result; - if (aMsg->ReadInt16(aIter, &result)) { - *aResult = paramType(result); - return true; - } - return false; - } - - static void Log(const paramType& aParam, std::wstring* aLog) - { - aLog->append(StringPrintf(L"%d", int16_t(aParam))); - } -}; +struct ParamTraits : + public ContiguousEnumSerializerInclusive +{}; template <> struct ParamTraits @@ -670,76 +651,26 @@ struct ParamTraits }; template <> -struct ParamTraits -{ - typedef NPNVariable paramType; +struct ParamTraits : + public ContiguousEnumSerializer +{}; - static void Write(Message* aMsg, const paramType& aParam) - { - WriteParam(aMsg, int(aParam)); - } - - static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult) - { - int intval; - if (ReadParam(aMsg, aIter, &intval)) { - *aResult = paramType(intval); - return true; - } - return false; - } -}; +// The only accepted value is NPNURLVariable::NPNURLVProxy +template<> +struct ParamTraits : + public ContiguousEnumSerializerInclusive +{}; template<> -struct ParamTraits -{ - typedef NPNURLVariable paramType; - - static void Write(Message* aMsg, const paramType& aParam) - { - WriteParam(aMsg, int(aParam)); - } - - static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult) - { - int intval; - if (ReadParam(aMsg, aIter, &intval) && - intval == NPNURLVProxy) { - *aResult = paramType(intval); - return true; - } - return false; - } -}; - - -template<> -struct ParamTraits -{ - typedef NPCoordinateSpace paramType; - - static void Write(Message* aMsg, const paramType& aParam) - { - WriteParam(aMsg, int32_t(aParam)); - } - - static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult) - { - int32_t intval; - if (ReadParam(aMsg, aIter, &intval)) { - switch (intval) { - case NPCoordinateSpacePlugin: - case NPCoordinateSpaceWindow: - case NPCoordinateSpaceFlippedWindow: - case NPCoordinateSpaceScreen: - case NPCoordinateSpaceFlippedScreen: - *aResult = paramType(intval); - return true; - } - } - return false; - } -}; +struct ParamTraits : + public ContiguousEnumSerializerInclusive +{}; template <> struct ParamTraits