Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(806)

Unified Diff: remoting/host/plugin/host_plugin_utils.h

Issue 340993002: Revert of Remove NPAPI plugin from chromoting webapp. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/host/plugin/host_plugin_utils.h
diff --git a/remoting/host/plugin/host_plugin_utils.h b/remoting/host/plugin/host_plugin_utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..a7348bb9744c9053e665b94f455c3d7ddce3bf7f
--- /dev/null
+++ b/remoting/host/plugin/host_plugin_utils.h
@@ -0,0 +1,55 @@
+// Copyright (c) 2012 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 REMOTING_HOST_PLUGIN_HOST_PLUGIN_UTILS_H_
+#define REMOTING_HOST_PLUGIN_HOST_PLUGIN_UTILS_H_
+
+#include <string>
+
+#include "third_party/npapi/bindings/npapi.h"
+#include "third_party/npapi/bindings/npfunctions.h"
+#include "third_party/npapi/bindings/npruntime.h"
+
+namespace remoting {
+
+// Global netscape functions initialized in NP_Initialize.
+extern NPNetscapeFuncs* g_npnetscape_funcs;
+
+// Convert an NPIdentifier into a std::string.
+std::string StringFromNPIdentifier(NPIdentifier identifier);
+
+// Convert an NPVariant into a std::string.
+std::string StringFromNPVariant(const NPVariant& variant);
+
+// Convert a std::string into an NPVariant.
+// Caller is responsible for making sure that NPN_ReleaseVariantValue is
+// called on returned value.
+NPVariant NPVariantFromString(const std::string& val);
+
+// Convert an NPVariant into an NSPObject.
+NPObject* ObjectFromNPVariant(const NPVariant& variant);
+
+// Scoped reference pointer for NPObjects. All objects using this class
+// must be owned by g_npnetscape_funcs.
+class ScopedRefNPObject {
+ public:
+ ScopedRefNPObject();
+ explicit ScopedRefNPObject(NPObject* object);
+ explicit ScopedRefNPObject(const ScopedRefNPObject& object);
+ ~ScopedRefNPObject();
+
+ // Release the held reference and replace it with |object|, incrementing
+ // its reference count.
+ ScopedRefNPObject& operator=(NPObject* object);
+ ScopedRefNPObject& operator=(const ScopedRefNPObject& object);
+
+ NPObject* get() const { return object_; }
+
+ private:
+ NPObject* object_;
+};
+
+} // namespace remoting
+
+#endif // REMOTING_HOST_PLUGIN_HOST_PLUGIN_UTILS_H_
« no previous file with comments | « remoting/host/plugin/host_plugin-InfoPlist.strings.jinja2 ('k') | remoting/host/plugin/host_plugin_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698