Index: webkit/glue/plugins/plugin_lib.h |
=================================================================== |
--- webkit/glue/plugins/plugin_lib.h (revision 69426) |
+++ webkit/glue/plugins/plugin_lib.h (working copy) |
@@ -1,120 +0,0 @@ |
-// Copyright (c) 2010 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 WEBKIT_GLUE_PLUGINS_PLUGIN_LIB_H_ |
-#define WEBKIT_GLUE_PLUGINS_PLUGIN_LIB_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "base/native_library.h" |
-#include "base/ref_counted.h" |
-#include "build/build_config.h" |
-#include "webkit/glue/plugins/plugin_list.h" |
-#include "webkit/glue/plugins/webplugin.h" |
- |
-class FilePath; |
-struct WebPluginInfo; |
- |
-namespace NPAPI { |
- |
-class PluginInstance; |
- |
-// A PluginLib is a single NPAPI Plugin Library, and is the lifecycle |
-// manager for new PluginInstances. |
-class PluginLib : public base::RefCounted<PluginLib> { |
- public: |
- static PluginLib* CreatePluginLib(const FilePath& filename); |
- |
- // Creates a WebPluginInfo structure given a plugin's path. On success |
- // returns true, with the information being put into "info". |
- // Returns false if the library couldn't be found, or if it's not a plugin. |
- static bool ReadWebPluginInfo(const FilePath& filename, WebPluginInfo* info); |
- |
-#if defined(OS_POSIX) && !defined(OS_MACOSX) |
- // Parse the result of an NP_GetMIMEDescription() call. |
- // This API is only used on Unixes, and is exposed here for testing. |
- static void ParseMIMEDescription(const std::string& description, |
- std::vector<WebPluginMimeType>* mime_types); |
-#endif |
- |
- // Unloads all the loaded plugin libraries and cleans up the plugin map. |
- static void UnloadAllPlugins(); |
- |
- // Shuts down all loaded plugin instances. |
- static void ShutdownAllPlugins(); |
- |
- // Get the Plugin's function pointer table. |
- NPPluginFuncs* functions(); |
- |
- // Creates a new instance of this plugin. |
- PluginInstance* CreateInstance(const std::string& mime_type); |
- |
- // Called by the instance when the instance is tearing down. |
- void CloseInstance(); |
- |
- // Gets information about this plugin and the mime types that it |
- // supports. |
- const WebPluginInfo& plugin_info() { return web_plugin_info_; } |
- |
- bool internal() { return internal_; } |
- |
- // |
- // NPAPI functions |
- // |
- |
- // NPAPI method to initialize a Plugin. |
- // Initialize can be safely called multiple times |
- NPError NP_Initialize(); |
- |
- // NPAPI method to shutdown a Plugin. |
- void NP_Shutdown(void); |
- |
- int instance_count() const { return instance_count_; } |
- |
- // Prevents the library code from being unload when Unload() is called (since |
- // some plugins crash if unloaded). |
- void PreventLibraryUnload(); |
- |
- // protected for testability. |
- protected: |
- friend class base::RefCounted<PluginLib>; |
- |
- // Creates a new PluginLib. |
- // |entry_points| is non-NULL for internal plugins. |
- PluginLib(const WebPluginInfo& info, |
- const PluginEntryPoints* entry_points); |
- |
- virtual ~PluginLib(); |
- |
- // Attempts to load the plugin from the library. |
- // Returns true if it is a legitimate plugin, false otherwise |
- bool Load(); |
- |
- // Unloads the plugin library. |
- void Unload(); |
- |
- // Shutdown the plugin library. |
- void Shutdown(); |
- |
- private: |
- bool internal_; // True for plugins that are built-in into chrome binaries. |
- WebPluginInfo web_plugin_info_; // Supported mime types, description |
- base::NativeLibrary library_; // The opened library reference. |
- NPPluginFuncs plugin_funcs_; // The struct of plugin side functions. |
- bool initialized_; // Is the plugin initialized? |
- NPSavedData *saved_data_; // Persisted plugin info for NPAPI. |
- int instance_count_; // Count of plugins in use. |
- bool skip_unload_; // True if library_ should not be unloaded. |
- |
- // Function pointers to entry points into the plugin. |
- PluginEntryPoints entry_points_; |
- |
- DISALLOW_COPY_AND_ASSIGN(PluginLib); |
-}; |
- |
-} // namespace NPAPI |
- |
-#endif // WEBKIT_GLUE_PLUGINS_PLUGIN_LIB_H_ |