summaryrefslogtreecommitdiffstats
path: root/gpu/np_utils/np_plugin_object.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/np_utils/np_plugin_object.h')
-rw-r--r--gpu/np_utils/np_plugin_object.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/gpu/np_utils/np_plugin_object.h b/gpu/np_utils/np_plugin_object.h
new file mode 100644
index 0000000..ad578e4
--- /dev/null
+++ b/gpu/np_utils/np_plugin_object.h
@@ -0,0 +1,50 @@
+// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GPU_NP_UTILS_NP_PLUGIN_OBJECT_H_
+#define GPU_NP_UTILS_NP_PLUGIN_OBJECT_H_
+
+#include "gpu/np_utils/np_object_pointer.h"
+#include "gpu/np_utils/np_headers.h"
+
+namespace np_utils {
+
+// Interface for a plugin instance. The NPP plugin calls forwards to an instance
+// of this interface.
+class PluginObject {
+ public:
+ // Initialize this object.
+ virtual NPError New(NPMIMEType plugin_type,
+ int16 argc,
+ char* argn[],
+ char* argv[],
+ NPSavedData* saved) = 0;
+
+ virtual NPError SetWindow(NPWindow* new_window) = 0;
+
+ virtual int16 HandleEvent(NPEvent* event) = 0;
+
+ // Uninitialize but do not deallocate the object. Release will be called to
+ // deallocate if Destroy succeeds.
+ virtual NPError Destroy(NPSavedData** saved) = 0;
+
+ // Deallocate this object. This object is invalid after this returns.
+ virtual void Release() = 0;
+
+ virtual NPObject* GetScriptableNPObject() = 0;
+
+ protected:
+ PluginObject() {
+ }
+
+ virtual ~PluginObject() {
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PluginObject);
+};
+
+} // namespace np_utils
+
+#endif // GPU_NP_UTILS_NP_PLUGIN_OBJECT_H_