1 // Copyright 2014 Samsung Electronics. 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 ewk_context_private_h
6 #define ewk_context_private_h
11 #include "base/files/file_path.h"
12 #include "base/memory/ref_counted.h"
13 #include "public/ewk_context_product.h"
18 struct EwkFaviconDatabase;
19 struct Ewk_Cookie_Manager;
22 class BrowserContextEfl;
25 struct Ewk_Context : public base::RefCounted<Ewk_Context> {
27 static Ewk_Context* DefaultContext();
28 static Ewk_Context* IncognitoContext();
29 static void DefaultContextRelease();
30 static Ewk_Context* Create(bool incognito = false);
31 static Ewk_Context* Create(const std::string& injectedBundlePath);
32 static void Delete(Ewk_Context*);
35 content::BrowserContextEfl* browser_context() const;
36 Ewk_Cookie_Manager* ewkCookieManager() const;
37 scoped_refptr<CookieManager> cookieManager() const;
40 void SetDidStartDownloadCallback(Ewk_Context_Did_Start_Download_Callback callback,
42 //EwkDidStartDownloadCallback* DidStartDownloadCallback();
45 void SetCertificatePath(const char* certificate_path);
46 const char* GetCertificatePath() const;
49 void SetProxy(const char* uri, const char* bypass_rule);
50 const char* GetProxyUri() const;
51 const char* GetProxyBypassRule() const;
53 #if defined(OS_TIZEN_TV_PRODUCT)
54 void SetEMPCertificatePath(const char* emp_ca_path,
55 const char* default_ca_path);
56 void SetProxyDefaultAuth(const char* username, const char* password);
59 void NotifyLowMemory();
62 bool HTTPCustomHeaderAdd(const std::string& name, const std::string& value);
63 bool HTTPCustomHeaderRemove(const std::string& name);
64 void HTTPCustomHeaderClear();
67 void SetCacheModel(Ewk_Cache_Model cm);
68 Ewk_Cache_Model GetCacheModel() const;
71 void SetNetworkCacheEnable(bool enable);
72 bool GetNetworkCacheEnable() const;
73 void ClearNetworkCache();
74 void ClearWebkitCache();
77 void GetAllOriginsWithApplicationCache(
78 Ewk_Web_Application_Cache_Origins_Get_Callback callback, void* user_data);
79 void GetApplicationCacheUsage(const GURL& url,
80 Ewk_Web_Application_Cache_Usage_For_Origin_Get_Callback callback,
82 void DeleteAllApplicationCache();
83 void DeleteApplicationCacheForSite(const GURL& url);
86 void GetAllOriginsWithWebDB(Ewk_Web_Database_Origins_Get_Callback callback,
88 void WebDBDelete(const GURL& host);
91 void IndexedDBDelete();
94 void WebStorageOriginsAllGet(Ewk_Web_Storage_Origins_Get_Callback callback,
96 void WebStorageDelete();
97 void WebStorageDelete(const GURL& origin);
98 void ClearCandidateData();
101 void GetAllOriginsWithFileSystem(
102 Ewk_Local_File_System_Origins_Get_Callback callback, void* user_data) const;
103 void FileSystemDelete(const GURL& host);
106 bool SetFaviconDatabasePath(const base::FilePath& path);
107 Evas_Object *AddFaviconObject(const char *uri, Evas *canvas) const;
110 void SetWidgetInfo(const std::string& tizen_app_id,
112 const std::string& theme,
113 const std::string& encoded_bundle);
114 //void SendWrtMessage(const Ewk_IPC_Wrt_Message_Data& message);
118 void SetPixmap(int pixmap);
121 void ClearPasswordData();
124 bool SetExtensibleAPI(const std::string& api_name, bool enable);
125 bool GetExtensibleAPI(const std::string& api_name) const;
127 // Set MIME override callback
128 void SetMimeOverrideCallback(Ewk_Context_Override_Mime_For_Url_Callback callback,
129 void* user_data) const;
131 // Note: Do not use outside chromium
132 EWebContext* GetImpl() { return impl; }
133 EwkFaviconDatabase* GetFaviconDatabase() const;
135 unsigned int InspectorServerStart(unsigned int port) const;
136 bool InspectorServerStop() const;
138 void SetNotificationCallbacks(
139 Ewk_Context_Notification_Show_Callback show_callback,
140 Ewk_Context_Notification_Cancel_Callback cancel_callback,
143 #if defined(OS_TIZEN_TV_PRODUCT)
144 // Set Check Accessible Path callback
145 void SetCheckAccessiblePathCallback(
146 Ewk_Context_Check_Accessible_Path_Callback callback,
150 void SetApplicationType(const Ewk_Application_Type application_type);
151 Ewk_Application_Type GetApplicationType() const;
153 // Registers JS plugins mime types
154 void RegisterJSPluginMimeTypes(const Eina_List* mime_types);
156 // Registers url scheme as CORS enabled for HBBTV
157 void RegisterURLSchemesAsCORSEnabled(const Eina_List* schemes_list);
159 // Sets time offset for HBBTV
160 void SetTimeOffset(double time_offset);
161 // Sets time zone offset for HBBTV
162 void SetTimeZoneOffset(double time_zone_offset, double daylight_saving_time);
165 void SetContextInterceptRequestCallback(
166 Ewk_Context_Intercept_Request_Callback callback,
169 #if defined(OS_TIZEN_TV_PRODUCT)
170 void SetMaxURLChars(size_t max_chars);
173 #if defined(PWE_SUPPORT)
174 void RegisterServiceWorker(
175 const char* scope_url,
176 const char* script_url,
177 Ewk_Context_Service_Worker_Registration_Result_Callback result_callback,
179 void UnregisterServiceWorker(
180 const char* scope_url,
181 Ewk_Context_Service_Worker_Unregistration_Result_Callback result_callback,
185 // default zoom factor
186 void SetDefaultZoomFactor(double zoom_factor);
187 double GetDefaultZoomFactor() const;
189 // Audio Latency Mode
190 void SetAudioLatencyMode(Ewk_Audio_Latency_Mode latency_mode);
191 Ewk_Audio_Latency_Mode GetAudioLatencyMode() const;
193 void SetMaxRefreshRate(int max_refresh_rate);
198 Ewk_Context(bool incognito);
199 Ewk_Context(const std::string& injectedBundlePath);
201 friend class base::RefCounted<Ewk_Context>;
203 DISALLOW_COPY_AND_ASSIGN(Ewk_Context);
207 #endif // ewk_context_private_h