7f8651fb283c19eed4e0ff33f933d65774528a6b
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / private / ewk_context_private.h
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.
4
5 #ifndef ewk_context_private_h
6 #define ewk_context_private_h
7
8 #include <string>
9 #include <Evas.h>
10
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"
15
16 class CookieManager;
17 class Ewk_Cookie_Manager;
18 class EWebContext;
19 class EwkFaviconDatabase;
20 class GURL;
21
22 namespace content {
23 class BrowserContextEfl;
24 };
25
26 struct Ewk_Context : public base::RefCounted<Ewk_Context> {
27  public:
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*);
33
34   // Get related class
35   content::BrowserContextEfl* browser_context() const;
36   Ewk_Cookie_Manager* ewkCookieManager() const;
37   scoped_refptr<CookieManager> cookieManager() const;
38
39   // Set Callbacks
40   void SetDidStartDownloadCallback(Ewk_Context_Did_Start_Download_Callback callback,
41       void* user_data);
42   //EwkDidStartDownloadCallback* DidStartDownloadCallback();
43
44   // Certificate
45   void SetCertificate(const char* certificate_file);
46
47   // Proxy URI
48   void SetProxyUri(const char* uri);
49   const char* GetProxyUri() const;
50
51   // System
52   void AddExtraPluginDir(const char *path);
53   void NotifyLowMemory();
54
55   // HTTP Custom Header
56   bool HTTPCustomHeaderAdd(const std::string& name, const std::string& value);
57   bool HTTPCustomHeaderRemove(const std::string& name);
58   void HTTPCustomHeaderClear();
59
60   // Cache Model
61   void SetCacheModel(Ewk_Cache_Model cm);
62   Ewk_Cache_Model GetCacheModel() const;
63
64   // Network Cache
65   void SetNetworkCacheEnable(bool enable);
66   bool GetNetworkCacheEnable() const;
67   void ClearNetworkCache();
68   void ClearWebkitCache();
69
70   // Application Cache
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,
75       void* user_data);
76   void DeleteAllApplicationCache();
77   void DeleteApplicationCacheForSite(const GURL& url);
78
79   // Web Database
80   void GetAllOriginsWithWebDB(Ewk_Web_Database_Origins_Get_Callback callback,
81       void* user_data);
82   void WebDBDelete(const GURL& host);
83
84   // Indexed DB
85   void IndexedDBDelete();
86
87   // Web Storage
88   void WebStorageOriginsAllGet(Ewk_Web_Storage_Origins_Get_Callback callback,
89       void* user_data);
90   void WebStorageDelete();
91   void WebStorageDelete(const GURL& origin);
92   void ClearCandidateData();
93
94   // File System
95   void GetAllOriginsWithFileSystem(
96       Ewk_Local_File_System_Origins_Get_Callback callback, void* user_data) const;
97   void FileSystemDelete(const GURL& host);
98
99   // Favicon
100   bool SetFaviconDatabasePath(const base::FilePath& path);
101   Evas_Object *AddFaviconObject(const char *uri, Evas *canvas) const;
102
103   // Widget
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);
107
108   // Pixmap
109   int  Pixmap() const;
110   void SetPixmap(int pixmap);
111
112   // Password
113   void ClearPasswordData();
114
115   // Extensible
116   bool SetExtensibleAPI(const std::string& api_name, bool enable);
117   bool GetExtensibleAPI(const std::string& api_name) const;
118
119   // Set MIME override callback
120   void SetMimeOverrideCallback(Ewk_Context_Override_Mime_For_Url_Callback callback,
121                                void* user_data) const;
122
123   // Note: Do not use outside chromium
124   EWebContext* GetImpl() { return impl; }
125   EwkFaviconDatabase* GetFaviconDatabase() const;
126
127   unsigned int InspectorServerStart(unsigned int port) const;
128   bool InspectorServerStop() const;
129
130   void SetNotificationCallbacks(
131     Ewk_Context_Notification_Show_Callback show_callback,
132     Ewk_Context_Notification_Cancel_Callback cancel_callback,
133     void* user_data);
134
135  private:
136   EWebContext* impl;
137
138   Ewk_Context(bool incognito);
139   Ewk_Context(const std::string& injectedBundlePath);
140   ~Ewk_Context();
141   friend class base::RefCounted<Ewk_Context>;
142
143   DISALLOW_COPY_AND_ASSIGN(Ewk_Context);
144 };
145
146
147 #endif // ewk_context_private_h