Change the chromium header from ewk_chromium.h to EWebKit.h/Ewebkit_internal.h
[platform/framework/web/crosswalk-tizen.git] / extensions / common / xwalk_extension_server.h
1 // Copyright (c) 2015 Samsung Electronics Co., Ltd. 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 XWALK_EXTENSIONS_XWALK_EXTENSION_SERVER_H_
6 #define XWALK_EXTENSIONS_XWALK_EXTENSION_SERVER_H_
7
8 #include <EWebKit.h>
9 #include <EWebKit_internal.h>
10 #include <json/json.h>
11
12 #include <string>
13 #include <map>
14
15 #include "extensions/common/xwalk_extension_manager.h"
16 #include "extensions/common/xwalk_extension_instance.h"
17
18 namespace extensions {
19
20 class XWalkExtensionServer {
21  public:
22   static XWalkExtensionServer* GetInstance();
23
24   void SetupIPC(Ewk_Context* ewk_context);
25   void Preload();
26   Json::Value GetExtensions();
27   std::string GetAPIScript(const std::string& extension_name);
28   std::string CreateInstance(const std::string& extension_name);
29
30   void HandleIPCMessage(Ewk_IPC_Wrt_Message_Data* data);
31
32   void Shutdown();
33   void LoadUserExtensions(const std::string app_path);
34
35  private:
36   XWalkExtensionServer();
37   virtual ~XWalkExtensionServer();
38
39   void HandleGetExtensions(Ewk_IPC_Wrt_Message_Data* data);
40   void HandleCreateInstance(Ewk_IPC_Wrt_Message_Data* data);
41   void HandleDestroyInstance(Ewk_IPC_Wrt_Message_Data* data);
42   void HandlePostMessageToNative(Ewk_IPC_Wrt_Message_Data* data);
43   void HandleSendSyncMessageToNative(Ewk_IPC_Wrt_Message_Data* data);
44   void HandleGetAPIScript(Ewk_IPC_Wrt_Message_Data* data);
45
46   typedef std::map<std::string, XWalkExtensionInstance*> InstanceMap;
47
48   Ewk_Context* ewk_context_;
49
50   XWalkExtensionManager manager_;
51
52   InstanceMap instances_;
53 };
54
55 }  // namespace extensions
56
57 #endif  // XWALK_EXTENSIONS_XWALK_EXTENSION_SERVER_H_