summaryrefslogtreecommitdiffstats
path: root/third_party/npapi
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-22 01:29:05 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-22 01:29:05 +0000
commit41fbf097c8e01c4971de118eb8fb791b9abaa6eb (patch)
tree8216ee10224ebb84ace23ef8d227e8ec07666bac /third_party/npapi
parentd77232f96be7900e1e7230d145c06bb9e5ed7e44 (diff)
downloadchromium_src-41fbf097c8e01c4971de118eb8fb791b9abaa6eb.zip
chromium_src-41fbf097c8e01c4971de118eb8fb791b9abaa6eb.tar.gz
chromium_src-41fbf097c8e01c4971de118eb8fb791b9abaa6eb.tar.bz2
Add events to windowless plugins on linux. This CL also refactors the event
communication between WebPlugin and WebPluginDelegate, to use a cross-platform message based on WebInputEvent. BUG=8202 TEST=A lot of manual testing on Linux and Windows, with Flash plugins and a custom plugin that dumps events on Linux. Review URL: http://codereview.chromium.org/115330 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16692 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/npapi')
-rw-r--r--third_party/npapi/bindings/npapi.h26
-rw-r--r--third_party/npapi/bindings/npapi_x11.h62
2 files changed, 78 insertions, 10 deletions
diff --git a/third_party/npapi/bindings/npapi.h b/third_party/npapi/bindings/npapi.h
index 1035aa3..e60ef7a 100644
--- a/third_party/npapi/bindings/npapi.h
+++ b/third_party/npapi/bindings/npapi.h
@@ -107,6 +107,7 @@
// On Linux and Mac, be sure to set Mozilla-specific macros.
#if defined(OS_LINUX)
#define XP_UNIX 1
+#define MOZ_X11 1
#elif defined(OS_MACOSX)
#ifndef XP_MACOSX
#define XP_MACOSX 1
@@ -133,10 +134,16 @@
#if defined(XP_UNIX)
# include <stdio.h>
+// BEGIN GOOGLE MODIFICATIONS
+#if 0
+// END GOOGLE MODIFICATIONS
# if defined(MOZ_X11)
# include <X11/Xlib.h>
# include <X11/Xutil.h>
# endif
+// BEGIN GOOGLE MODIFICATIONS
+#endif
+// END GOOGLE MODIFICATIONS
#endif
/*----------------------------------------------------------------------*/
@@ -341,16 +348,9 @@ typedef struct
int32 type;
} NPAnyCallbackStruct;
-typedef struct
-{
- int32 type;
-#ifdef MOZ_X11
- Display* display;
- Visual* visual;
- Colormap colormap;
- unsigned int depth;
-#endif
-} NPSetWindowCallbackStruct;
+// BEGIN GOOGLE MODIFICATIONS
+typedef struct _NPSetWindowCallbackStruct NPSetWindowCallbackStruct;
+// END GOOGLE MODIFICATIONS
typedef struct
{
@@ -564,6 +564,9 @@ typedef struct _NPEvent
uint32 lParam;
} NPEvent;
#elif defined (XP_UNIX) && defined(MOZ_X11)
+// BEGIN GOOGLE MODIFICATIONS
+typedef union _XEvent XEvent;
+// END GOOGLE MODIFICATIONS
typedef XEvent NPEvent;
#else
typedef void* NPEvent;
@@ -578,6 +581,9 @@ typedef CGPathRef NPCGRegion;
#elif defined(XP_WIN)
typedef HRGN NPRegion;
#elif defined(XP_UNIX) && defined(MOZ_X11)
+// BEGIN GOOGLE MODIFICATIONS
+typedef struct _XRegion *Region;
+// END GOOGLE MODIFICATIONS
typedef Region NPRegion;
#else
typedef void *NPRegion;
diff --git a/third_party/npapi/bindings/npapi_x11.h b/third_party/npapi/bindings/npapi_x11.h
new file mode 100644
index 0000000..c586419
--- /dev/null
+++ b/third_party/npapi/bindings/npapi_x11.h
@@ -0,0 +1,62 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef THIRD_PARTY_NPAPI_BINDINGS_NPAPI_X11_H_
+#define THIRD_PARTY_NPAPI_BINDINGS_NPAPI_X11_H_
+
+// This file was split off the original npapi.h, to avoid including intrusive X
+// headers unless necessary.
+
+#include "third_party/npapi/bindings/npapi.h"
+
+#ifdef XP_UNIX
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+typedef struct _NPSetWindowCallbackStruct
+{
+ int32 type;
+#ifdef MOZ_X11
+ Display* display;
+ Visual* visual;
+ Colormap colormap;
+ unsigned int depth;
+#endif
+} NPSetWindowCallbackStruct;
+#endif
+
+#endif // THIRD_PARTY_NPAPI_BINDINGS_NPAPI_X11_H_