- add sources.
[platform/framework/web/crosswalk.git] / src / content / test / plugin / plugin_client.h
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_