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 "ewk_enums.h"
14 #include "public/ewk_context.h"
17 class Ewk_Cookie_Manager;
19 class EwkFaviconDatabase;
23 class BrowserContextEfl;
26 struct Ewk_Context : public base::RefCounted<Ewk_Context> {
28 static Ewk_Context* DefaultContext();
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 SetCertificate(const char* certificate_file);
48 void SetProxyUri(const char* uri);
49 const char* GetProxyUri() const;
52 void AddExtraPluginDir(const char *path);
53 void NotifyLowMemory();
56 bool HTTPCustomHeaderAdd(const std::string& name, const std::string& value);
57 bool HTTPCustomHeaderRemove(const std::string& name);
58 void HTTPCustomHeaderClear();
61 void SetCacheModel(Ewk_Cache_Model cm);
62 Ewk_Cache_Model GetCacheModel() const;
65 void SetNetworkCacheEnable(bool enable);
66 bool GetNetworkCacheEnable() const;
67 void ClearNetworkCache();
68 void ClearWebkitCache();
71 void GetAllOriginsWithApplicationCache(
72 Ewk_Web_Application_Cache_Origins_Get_Callback callback, void* user_data);
73 void GetApplicationCacheUsage(const GURL& url,
74 Ewk_Web_Application_Cache_Usage_For_Origin_Get_Callback callback,
76 void DeleteAllApplicationCache();
77 void DeleteApplicationCacheForSite(const GURL& url);
80 void GetAllOriginsWithWebDB(Ewk_Web_Database_Origins_Get_Callback callback,
82 void WebDBDelete(const GURL& host);
85 void IndexedDBDelete();
88 void WebStorageOriginsAllGet(Ewk_Web_Storage_Origins_Get_Callback callback,
90 void WebStorageDelete();
91 void WebStorageDelete(const GURL& origin);
92 void ClearCandidateData();
95 void GetAllOriginsWithFileSystem(
96 Ewk_Local_File_System_Origins_Get_Callback callback, void* user_data) const;
97 void FileSystemDelete(const GURL& host);
100 bool SetFaviconDatabasePath(const base::FilePath& path);
101 Evas_Object *AddFaviconObject(const char *uri, Evas *canvas) const;
104 void SendWidgetInfo(const std::string& tizen_id, double scale, const std::string &theme,
105 const std::string &encoded_bundle);
106 //void SendWrtMessage(const Ewk_IPC_Wrt_Message_Data& message);
110 void SetPixmap(int pixmap);
113 void ClearPasswordData();
116 bool SetExtensibleAPI(const std::string& api_name, bool enable);
117 bool GetExtensibleAPI(const std::string& api_name) const;
119 // Set MIME override callback
120 void SetMimeOverrideCallback(Ewk_Context_Override_Mime_For_Url_Callback callback,
121 void* user_data) const;
123 // Note: Do not use outside chromium
124 EWebContext* GetImpl() { return impl; }
125 EwkFaviconDatabase* GetFaviconDatabase() const;
127 unsigned int InspectorServerStart(unsigned int port) const;
128 bool InspectorServerStop() const;
130 void SetNotificationCallbacks(
131 Ewk_Context_Notification_Show_Callback show_callback,
132 Ewk_Context_Notification_Cancel_Callback cancel_callback,
138 Ewk_Context(bool incognito);
139 Ewk_Context(const std::string& injectedBundlePath);
141 friend class base::RefCounted<Ewk_Context>;
143 DISALLOW_COPY_AND_ASSIGN(Ewk_Context);
147 #endif // ewk_context_private_h