diff options
Diffstat (limited to 'webkit/plugins/npapi/plugin_lib.h')
-rw-r--r-- | webkit/plugins/npapi/plugin_lib.h | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/webkit/plugins/npapi/plugin_lib.h b/webkit/plugins/npapi/plugin_lib.h deleted file mode 100644 index 081e593..0000000 --- a/webkit/plugins/npapi/plugin_lib.h +++ /dev/null @@ -1,122 +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_PLUGINS_NPAPI_PLUGIN_LIB_H_ -#define WEBKIT_PLUGINS_NPAPI_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/plugins/npapi/plugin_list.h" -#include "webkit/plugins/npapi/webplugin.h" - -class FilePath; -struct WebPluginInfo; - -namespace webkit { -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 -} // namespace webkit - -#endif // WEBKIT_PLUGINS_NPAPI_PLUGIN_LIB_H_ |