summaryrefslogtreecommitdiff
path: root/dom/plugins/ipc/PluginMessageUtils.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/plugins/ipc/PluginMessageUtils.h')
-rw-r--r--dom/plugins/ipc/PluginMessageUtils.h204
1 files changed, 18 insertions, 186 deletions
diff --git a/dom/plugins/ipc/PluginMessageUtils.h b/dom/plugins/ipc/PluginMessageUtils.h
index a9cd52ae29..e04e906382 100644
--- a/dom/plugins/ipc/PluginMessageUtils.h
+++ b/dom/plugins/ipc/PluginMessageUtils.h
@@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * vim: sw=4 ts=4 et :
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
@@ -23,11 +22,7 @@
#include "nsTArray.h"
#include "mozilla/Logging.h"
#include "nsHashKeys.h"
-#ifdef XP_MACOSX
-#include "PluginInterposeOSX.h"
-#else
namespace mac_plugin_interposing { class NSCursorInfo { }; }
-#endif
using mac_plugin_interposing::NSCursorInfo;
namespace mozilla {
@@ -87,24 +82,24 @@ struct NPRemoteWindow
uint32_t height;
NPRect clipRect;
NPWindowType type;
-#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
+#if defined(MOZ_X11) && defined(XP_UNIX)
VisualID visualID;
Colormap colormap;
#endif /* XP_UNIX */
-#if defined(XP_MACOSX) || defined(XP_WIN)
+#if defined(XP_WIN)
double contentsScaleFactor;
#endif
};
-// This struct is like NPAudioDeviceChangeDetails, only it uses a
-// std::wstring instead of a const wchar_t* for the defaultDevice.
-// This gives us the necessary memory-ownership semantics without
-// requiring C++ objects in npapi.h.
-struct NPAudioDeviceChangeDetailsIPC
-{
- int32_t flow;
- int32_t role;
- std::wstring defaultDevice;
+// This struct is like NPAudioDeviceChangeDetails, only it uses a
+// std::wstring instead of a const wchar_t* for the defaultDevice.
+// This gives us the necessary memory-ownership semantics without
+// requiring C++ objects in npapi.h.
+struct NPAudioDeviceChangeDetailsIPC
+{
+ int32_t flow;
+ int32_t role;
+ std::wstring defaultDevice;
};
#ifdef XP_WIN
@@ -156,11 +151,6 @@ NPPVariableToString(NPPVariable aVar)
VARSTR(NPPVpluginWantsAllNetworkStreams);
-#ifdef XP_MACOSX
- VARSTR(NPPVpluginDrawingModel);
- VARSTR(NPPVpluginEventModel);
-#endif
-
#ifdef XP_WIN
VARSTR(NPPVpluginRequiresAudioDeviceChanges);
#endif
@@ -357,11 +347,11 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow>
WriteParam(aMsg, aParam.height);
WriteParam(aMsg, aParam.clipRect);
WriteParam(aMsg, aParam.type);
-#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
+#if defined(MOZ_X11) && defined(XP_UNIX)
aMsg->WriteULong(aParam.visualID);
aMsg->WriteULong(aParam.colormap);
#endif
-#if defined(XP_MACOSX) || defined(XP_WIN)
+#if defined(XP_WIN)
aMsg->WriteDouble(aParam.contentsScaleFactor);
#endif
}
@@ -382,7 +372,7 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow>
ReadParam(aMsg, aIter, &type)))
return false;
-#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
+#if defined(MOZ_X11) && defined(XP_UNIX)
unsigned long visualID;
unsigned long colormap;
if (!(aMsg->ReadULong(aIter, &visualID) &&
@@ -390,7 +380,7 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow>
return false;
#endif
-#if defined(XP_MACOSX) || defined(XP_WIN)
+#if defined(XP_WIN)
double contentsScaleFactor;
if (!aMsg->ReadDouble(aIter, &contentsScaleFactor))
return false;
@@ -403,11 +393,11 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow>
aResult->height = height;
aResult->clipRect = clipRect;
aResult->type = type;
-#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
+#if defined(MOZ_X11) && defined(XP_UNIX)
aResult->visualID = visualID;
aResult->colormap = colormap;
#endif
-#if defined(XP_MACOSX) || defined(XP_WIN)
+#if defined(XP_WIN)
aResult->contentsScaleFactor = contentsScaleFactor;
#endif
return true;
@@ -422,161 +412,6 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow>
}
};
-#ifdef XP_MACOSX
-template <>
-struct ParamTraits<NPNSString*>
-{
- typedef NPNSString* paramType;
-
- // Empty string writes a length of 0 and no buffer.
- // We don't write a nullptr terminating character in buffers.
- static void Write(Message* aMsg, const paramType& aParam)
- {
- CFStringRef cfString = (CFStringRef)aParam;
-
- // Write true if we have a string, false represents nullptr.
- aMsg->WriteBool(!!cfString);
- if (!cfString) {
- return;
- }
-
- long length = ::CFStringGetLength(cfString);
- WriteParam(aMsg, length);
- if (length == 0) {
- return;
- }
-
- // Attempt to get characters without any allocation/conversion.
- if (::CFStringGetCharactersPtr(cfString)) {
- aMsg->WriteBytes(::CFStringGetCharactersPtr(cfString), length * sizeof(UniChar));
- } else {
- UniChar *buffer = (UniChar*)moz_xmalloc(length * sizeof(UniChar));
- ::CFStringGetCharacters(cfString, ::CFRangeMake(0, length), buffer);
- aMsg->WriteBytes(buffer, length * sizeof(UniChar));
- free(buffer);
- }
- }
-
- static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
- {
- bool haveString = false;
- if (!aMsg->ReadBool(aIter, &haveString)) {
- return false;
- }
- if (!haveString) {
- *aResult = nullptr;
- return true;
- }
-
- long length;
- if (!ReadParam(aMsg, aIter, &length)) {
- return false;
- }
-
- // Avoid integer multiplication overflow.
- if (length > INT_MAX / static_cast<long>(sizeof(UniChar))) {
- return false;
- }
-
- auto chars = mozilla::MakeUnique<UniChar[]>(length);
- if (length != 0) {
- if (!aMsg->ReadBytesInto(aIter, chars.get(), length * sizeof(UniChar))) {
- return false;
- }
- }
-
- *aResult = (NPNSString*)::CFStringCreateWithBytes(kCFAllocatorDefault, (UInt8*)chars.get(),
- length * sizeof(UniChar),
- kCFStringEncodingUTF16, false);
- if (!*aResult) {
- return false;
- }
-
- return true;
- }
-};
-#endif
-
-#ifdef XP_MACOSX
-template <>
-struct ParamTraits<NSCursorInfo>
-{
- typedef NSCursorInfo paramType;
-
- static void Write(Message* aMsg, const paramType& aParam)
- {
- NSCursorInfo::Type type = aParam.GetType();
-
- aMsg->WriteInt(type);
-
- nsPoint hotSpot = aParam.GetHotSpot();
- WriteParam(aMsg, hotSpot.x);
- WriteParam(aMsg, hotSpot.y);
-
- uint32_t dataLength = aParam.GetCustomImageDataLength();
- WriteParam(aMsg, dataLength);
- if (dataLength == 0) {
- return;
- }
-
- uint8_t* buffer = (uint8_t*)moz_xmalloc(dataLength);
- memcpy(buffer, aParam.GetCustomImageData(), dataLength);
- aMsg->WriteBytes(buffer, dataLength);
- free(buffer);
- }
-
- static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
- {
- NSCursorInfo::Type type;
- if (!aMsg->ReadInt(aIter, (int*)&type)) {
- return false;
- }
-
- nscoord hotSpotX, hotSpotY;
- if (!ReadParam(aMsg, aIter, &hotSpotX) ||
- !ReadParam(aMsg, aIter, &hotSpotY)) {
- return false;
- }
-
- uint32_t dataLength;
- if (!ReadParam(aMsg, aIter, &dataLength)) {
- return false;
- }
-
- auto data = mozilla::MakeUnique<uint8_t[]>(dataLength);
- if (dataLength != 0) {
- if (!aMsg->ReadBytesInto(aIter, data.get(), dataLength)) {
- return false;
- }
- }
-
- aResult->SetType(type);
- aResult->SetHotSpot(nsPoint(hotSpotX, hotSpotY));
- aResult->SetCustomImageData(data.get(), dataLength);
-
- return true;
- }
-
- static void Log(const paramType& aParam, std::wstring* aLog)
- {
- const char* typeName = aParam.GetTypeName();
- nsPoint hotSpot = aParam.GetHotSpot();
- int hotSpotX, hotSpotY;
-#ifdef NS_COORD_IS_FLOAT
- hotSpotX = rint(hotSpot.x);
- hotSpotY = rint(hotSpot.y);
-#else
- hotSpotX = hotSpot.x;
- hotSpotY = hotSpot.y;
-#endif
- uint32_t dataLength = aParam.GetCustomImageDataLength();
- uint8_t* data = aParam.GetCustomImageData();
-
- aLog->append(StringPrintf(L"[%s, (%i %i), %u, %p]",
- typeName, hotSpotX, hotSpotY, dataLength, data));
- }
-};
-#else
template<>
struct ParamTraits<NSCursorInfo>
{
@@ -589,7 +424,6 @@ struct ParamTraits<NSCursorInfo>
return false;
}
};
-#endif // #ifdef XP_MACOSX
template <>
struct ParamTraits<mozilla::plugins::IPCByteRange>
@@ -732,9 +566,7 @@ struct ParamTraits<mozilla::plugins::NPAudioDeviceChangeDetailsIPC>
//
// NB: these guards are based on those where struct NPEvent is defined
// in npapi.h. They should be kept in sync.
-#if defined(XP_MACOSX)
-# include "mozilla/plugins/NPEventOSX.h"
-#elif defined(XP_WIN)
+#if defined(XP_WIN)
# include "mozilla/plugins/NPEventWindows.h"
#elif defined(XP_UNIX)
# include "mozilla/plugins/NPEventUnix.h"