1 // Copyright 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 WRT_EXTENSION_EXTENSION_H_
6 #define WRT_EXTENSION_EXTENSION_H_
11 #include "extension/extension_instance.h"
12 #include "extension/xwalk/XW_Extension.h"
13 #include "extension/xwalk/XW_Extension_SyncMessage.h"
17 class ExtensionAdapter;
18 class ExtensionInstance;
22 typedef std::vector<std::string> StringVector;
24 class ExtensionDelegate {
26 virtual void GetRuntimeVariable(const char* key, char* value,
27 size_t value_len) = 0;
30 Extension(const std::string& path, ExtensionDelegate* delegate);
34 ExtensionInstance* CreateInstance();
36 std::string name() const { return name_; }
38 std::string javascript_api() const { return javascript_api_; }
40 const StringVector& entry_points() const {
44 bool use_trampoline() const {
45 return use_trampoline_;
48 void set_name(const std::string& name) {
52 void set_javascript_api(const std::string& javascript_api) {
53 javascript_api_ = javascript_api;
56 void set_use_trampoline(bool use_trampoline) {
57 use_trampoline_ = use_trampoline;
61 friend class ExtensionAdapter;
62 friend class ExtensionInstance;
64 void GetRuntimeVariable(const char* key, char* value, size_t value_len);
65 int CheckAPIAccessControl(const char* api_name);
66 int RegisterPermissions(const char* perm_table);
69 std::string library_path_;
70 XW_Extension xw_extension_;
73 std::string javascript_api_;
74 StringVector entry_points_;
77 ExtensionDelegate* delegate_;
79 XW_CreatedInstanceCallback created_instance_callback_;
80 XW_DestroyedInstanceCallback destroyed_instance_callback_;
81 XW_ShutdownCallback shutdown_callback_;
82 XW_HandleMessageCallback handle_msg_callback_;
83 XW_HandleSyncMessageCallback handle_sync_msg_callback_;
88 #endif // WRT_EXTENSION_EXTENSION_H_