| // 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 CONTENT_TEST_PLUGIN_PLUGIN_CLIENT_H_ |
| #define CONTENT_TEST_PLUGIN_PLUGIN_CLIENT_H_ |
| |
| #include "third_party/npapi/bindings/npapi.h" |
| #include "third_party/npapi/bindings/nphostapi.h" |
| |
| namespace NPAPIClient { |
| |
| // A PluginClient is a NPAPI Plugin. This class contains |
| // the bootstrapping functions used by the browser to load |
| // the plugin. |
| class PluginClient { |
| public: |
| // Although not documented in the NPAPI specification, this function |
| // gets the list of entry points in the NPAPI Plugin (client) for the |
| // NPAPI Host to call. |
| static NPError GetEntryPoints(NPPluginFuncs* pFuncs); |
| |
| // The browser calls this function only once: when a plug-in is loaded, |
| // before the first instance is created. This is the first function that |
| // the browser calls. NP_Initialize tells the plug-in that the browser has |
| // loaded it and provides global initialization. Allocate any memory or |
| // resources shared by all instances of your plug-in at this time. |
| static NPError Initialize(NPNetscapeFuncs* pFuncs); |
| |
| // The browser calls this function once after the last instance of your |
| // plug-in is destroyed, before unloading the plug-in library itself. Use |
| // NP_Shutdown to delete any data allocated in NP_Initialize to be shared |
| // by all instances of a plug-in. |
| static NPError Shutdown(); |
| |
| // The table of functions provided by the host. |
| static NPNetscapeFuncs *HostFunctions() { return host_functions_; } |
| |
| private: |
| static NPNetscapeFuncs* host_functions_; |
| }; |
| |
| } // namespace NPAPIClient |
| |
| #endif // CONTENT_TEST_PLUGIN_PLUGIN_CLIENT_H_ |