Home | History | Annotate | Download | only in plugin
      1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CONTENT_TEST_PLUGIN_PLUGIN_CLIENT_H_
      6 #define CONTENT_TEST_PLUGIN_PLUGIN_CLIENT_H_
      7 
      8 #include "third_party/npapi/bindings/npapi.h"
      9 #include "third_party/npapi/bindings/nphostapi.h"
     10 
     11 namespace NPAPIClient {
     12 
     13 // A PluginClient is a NPAPI Plugin.  This class contains
     14 // the bootstrapping functions used by the browser to load
     15 // the plugin.
     16 class PluginClient {
     17  public:
     18   // Although not documented in the NPAPI specification, this function
     19   // gets the list of entry points in the NPAPI Plugin (client) for the
     20   // NPAPI Host to call.
     21   static NPError GetEntryPoints(NPPluginFuncs* pFuncs);
     22 
     23   // The browser calls this function only once: when a plug-in is loaded,
     24   // before the first instance is created. This is the first function that
     25   // the browser calls. NP_Initialize tells the plug-in that the browser has
     26   // loaded it and provides global initialization. Allocate any memory or
     27   // resources shared by all instances of your plug-in at this time.
     28   static NPError Initialize(NPNetscapeFuncs* pFuncs);
     29 
     30   // The browser calls this function once after the last instance of your
     31   // plug-in is destroyed, before unloading the plug-in library itself. Use
     32   // NP_Shutdown to delete any data allocated in NP_Initialize to be shared
     33   // by all instances of a plug-in.
     34   static NPError Shutdown();
     35 
     36   // The table of functions provided by the host.
     37   static NPNetscapeFuncs *HostFunctions() { return host_functions_; }
     38 
     39  private:
     40   static NPNetscapeFuncs* host_functions_;
     41 };
     42 
     43 }  // namespace NPAPIClient
     44 
     45 #endif  // CONTENT_TEST_PLUGIN_PLUGIN_CLIENT_H_
     46