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.
5 #ifndef XWALK_EXTENSIONS_XWALK_EXTENSION_SERVER_H_
6 #define XWALK_EXTENSIONS_XWALK_EXTENSION_SERVER_H_
9 #include <EWebKit_internal.h>
10 #include <json/json.h>
15 #include "extensions/common/xwalk_extension_manager.h"
16 #include "extensions/common/xwalk_extension_instance.h"
18 namespace extensions {
20 class XWalkExtensionServer {
22 static XWalkExtensionServer* GetInstance();
24 void SetupIPC(Ewk_Context* ewk_context);
26 Json::Value GetExtensions();
27 std::string GetAPIScript(const std::string& extension_name);
28 std::string CreateInstance(const std::string& extension_name);
30 void HandleIPCMessage(Ewk_IPC_Wrt_Message_Data* data);
33 void LoadUserExtensions(const std::string app_path);
36 XWalkExtensionServer();
37 virtual ~XWalkExtensionServer();
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);
46 typedef std::map<std::string, XWalkExtensionInstance*> InstanceMap;
48 Ewk_Context* ewk_context_;
50 XWalkExtensionManager manager_;
52 InstanceMap instances_;
55 } // namespace extensions
57 #endif // XWALK_EXTENSIONS_XWALK_EXTENSION_SERVER_H_